Web Service + Parametro

2 respostas
F

Pessoal não estou conseguindo passar parametros pro meu web service
o chamanda funciona normalmente porém meus parametros estão chegando como NULL no meu web service. Alguém sabe o que posso estar fazendo de errado? Faço a chamada da seguinte forma:

String local = "http://localhost/WSTeste/Service1.asmx";

        // Criando e configurando o serviço
          Call call = (Call) new Service().createCall();

        // Configurando o endereço.
        call.setTargetEndpointAddress(local);

        // Marcando o método a ser chamado.
        call.setOperationName("HelloWorld");

        // Parâmetros da função
        Object[] param = new Object[] { "Teste Fernando" };


        call.setSOAPActionURI("http://tempuri.org/HelloWorld");

        // Retorno da Função
        String ret = (String) call.invoke(param);

        // Imprime o resultado do web service
        System.out.println("Resultado " + ret);

2 Respostas

Alexandre_Saudate

Coloque alguma espécie de sniffer ou logger no seu sistema que te mostre a mensagem que está sendo enviada (tenho quase certeza que você não pode simplesmente enviar uma String). Outra alternativa: use o http://www.bansheeframework.com/.

[]'s

F

Consegui resolver
Se alguém precisar ta ai a solução

ServiceFactory factory = ServiceFactory.newInstance();
            // define qnames
            String targetNamespace = "http://tempuri.org/";
            QName serviceName = new QName(targetNamespace, "Service1");
            QName portName = new QName(targetNamespace, "Service1Soap");
            QName operationName = new QName("Service1", "HelloWorld");
            URL wsdlLocation = new URL ("http://localhost/WSTeste/Service1.asmx?wsdl");
            // create service
            Service service = (Service) factory.createService(wsdlLocation, serviceName);
            // create call
            Call call = (Call) service.createCall(portName, operationName);

            // invoke the remote web service
            String result = (String) call.invoke(new Object[] {"teste teste teste teste"});

            System.out.println(result);

Obrigado

Fernando

Criado 6 de abril de 2011
Ultima resposta 6 de abr. de 2011
Respostas 2
Participantes 2