Consumir WebService Java com VisualBasic

2 respostas
benignoms

Bom dia a todos,

Criei um WebService Jax-WS utilizando o Netbeans 6.7 e rodando no Apache Tomcat 6.0. Para consumi-lo criei um cliente em VB 6.0 utilizando MS Soap Toolkit.

A princípio tive problemas no consumo com erros no VB “parâmetro incorreto”. Descrobri que é necessário fazer uma notação @SOAPBINDING definindo o estilo RPC e o uso do tipo LITERAL. A partir dai conseguia receber informações do WS. Começou então a aparecer o erro NullPointer Exception.

O Problema é que quando chamo o método e passo os parâmetros, estes sempre chegam nulos ao webservice. Eu descobri isso imprimindo os valores dos parâmetros recebidos.

Segue abaixo o código do WS e em seguida o código do cliente em VB 6.0.

WebService:

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;

@WebService()
public class CalculadoraWS {

    @WebMethod(operationName = "soma")
    @SOAPBinding(style=SOAPBinding.Style.RPC,use=SOAPBinding.Use.LITERAL,parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)

    public Integer  soma(
            @WebParam(name="i") Integer i,
            @WebParam(name="j") Integer j) {
         System.out.println("Valor1:" + i + " " + "Valor2:" + j);
         Integer resultado = i+j;
         return resultado;
    }
}

Cliente VB 6.0:

Dim SoapClient As MSSOAPLib30.SoapClient30
Dim V_URL As String
Dim v1, v2 As Integer

V_URL = "http://10.2.1.60:8084/AppCalculadoraWS/CalculadoraWS?wsdl"

Set SoapClient = New MSSOAPLib30.SoapClient30

SoapClient.ClientProperty("ServerHTTPRequest") = True
Call SoapClient.MSSoapInit(V_URL)
SoapClient.ConnectorProperty("EnableAutoProxy") = True
v1 = Int(valor1.Text)
v2 = Int(valor2.Text)

resultado.Caption = SoapClient.soma(v1, v2)

2 Respostas

benignoms

Ninguem sabe? Pelo amor de Deus…

malhuco

post antigo, mas vamos la.

ja fiz isso mas não recomendo.

utilizei o VS2008.

project > add Web Reference …

ai é só passar o caminho do seu WSDL.

pronto, o resto ele faz.

mas VB é lixo… haha

Criado 10 de agosto de 2009
Ultima resposta 28 de mai. de 2010
Respostas 2
Participantes 2