WebService Soap

Qual a melhor maneira/api de se acessar um WEBSERVICE SOAP ?

Alguem tem alguma referencia/exemplo ?

Obrigado …

Uma opção é o Axis (http://ws.apache.org/axis/java/user-guide.html)
Se você estiver usando o NetBeans, existem assistentes que te ajudam nas tarefas de criar e de consumir webservices. No NetBeans é usado o JAX-RPC.

[]´s

Outra grande opção é o projeto CXF que usa o XMLBens internamente como OXM que é super performático :

http://cxf.apache.org/docs/developing-a-consumer.html

no eclipse usando o axis também, você pode criar um stub para acessar esse web service, vai em new, other, web service client, ai vai ter umas telas de configuração la, você tem que colocar la o endereço do wsdl, seelciona o servidor de onde a aplicação cliente está, qual seria o projeto web onde o cliente estará… acho que o resto é só dexa do jeito que esta e ir avançando…

um ponto fraco ai é que só consigo gerar esse cliente numa aplicação web, na hora de marcar qual será o projeto ondeficará o stub, o eclipse só deixa aplicações web (o que não me impediu no passado de depois de gerar o stub colar ele numa aplicação desktop…)…

vlw pelas dicas galera, eu tentei fazer pelos assistentes mais n consegui …

vou tentar fazer na mão tentando entender como funciona para tentar resolver o ERRO.

percebi que ele gera MUITOS arquivos quando tento gerar pelo netbeans, entretanto
todos esses arquivos são nescessários ?

Obrigado Novamente, sou um pouco inesperiente se tratando de JAVA …


package fortress;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;

public class Main {

    public static void main(String[] args) {
        try {
            String endpoint = "http://localdaapi";

            Service service = new Service();
            Call    call    = (Call) service.createCall();
            call.setTargetEndpointAddress( new java.net.URL(endpoint) );
            call.setOperationName(new QName("login"));

            call.setUsername("blablabla");
            call.setPassword("blablabla");

            String ret = (String) call.invoke( new Object[] { "metodo" } );
            System.out.println(ret);

        } catch (Exception e) {
            System.err.println(e.toString());
        }
    }
}

Assim funciona, tem alguma maneira mais “CORRETA” ?