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)