W
weetat
Hi all , I need to call method from webservice that I have created.
The webservice is deployed in jboss 4.0.4 and the webservice is simple
Hello test.
However , when i tried to call method , it gave error below:
I am new in webservice . Anyone have any ideas or suggestion is much
appreciated. Thanks
serialization error: serialization error:
java.lang.NullPointerException
at
com.sun.xml.rpc.encoding.DynamicInternalTypeMappingRegistry.getSerializer(DynamicInternalTypeMappingRegistry.java:
196)
at
com.sun.xml.rpc.encoding.literal.LiteralResponseSerializer.initialize(LiteralResponseSerializer.java:
230)
at
com.sun.xml.rpc.client.dii.BasicCall.createRpcLiteralResponseSerializer(BasicCall.java:
757)
at
com.sun.xml.rpc.client.dii.BasicCall.getResponseDeserializer(BasicCall.java:
690)
at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:
486)
at com.test.client.TestWebService.main(TestWebService.java:45)
This is the web service client code:
public static void main(String [] args){
try{
String wsdlURL = "http://cxrus020:8080/HelloWebService/
HelloWS?wsdl";
String namespace = "urn:HelloWS/wsdl";
String serviceName = "HelloWS";
QName serviceQN = new QName(namespace, serviceName);
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service service = serviceFactory.createService(new
URL(wsdlURL), serviceQN);
Call call = service.createCall();
call.setPortTypeName(serviceQN);
call.setOperationName(new QName(namespace, "greet"));
call.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY, "");
call.addParameter("string_1",serviceQN,javax.xml.rpc.ParameterMode.IN);
call.setReturnType(serviceQN);
Object[] inParams = new Object[]{"weetat is testing"};
String ret = (String) call.invoke(inParams);
System.out.println("ret:" + ret);
}catch(Exception ex){
ex.printStackTrace();
}
The wsdl file for your reference :
<definitions name='HelloWS' targetNamespace='urn:HelloWS/wsdl'
xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://
schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='urn:HelloWS/wsdl'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
<types></types>
<message name='HelloWSSEI_greet'>
<part name='String_1' type='xsd:string'/>
</message>
<message name='HelloWSSEI_greetResponse'>
<part name='result' type='xsd:string'/>
</message>
<portType name='HelloWSSEI'>
<operation name='greet' parameterOrder='String_1'>
<input message='tns:HelloWSSEI_greet'/>
<output message='tns:HelloWSSEI_greetResponse'/>
</operation>
</portType>
<binding name='HelloWSSEIBinding' type='tns:HelloWSSEI'>
<soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/
http'/>
<operation name='greet'>
<soapperation soapAction=''/>
<input>
<soap:body namespace='urn:HelloWS/wsdl' use='literal'/>
</input>
<output>
<soap:body namespace='urn:HelloWS/wsdl' use='literal'/>
</output>
</operation>
</binding>
<service name='HelloWS'>
<port binding='tns:HelloWSSEIBinding' name='HelloWSSEIPort'>
<soap:address location='http://cxrus020:8080/HelloWebService/
HelloWS'/>
</port>
</service>
</definitions>
The webservice is deployed in jboss 4.0.4 and the webservice is simple
Hello test.
However , when i tried to call method , it gave error below:
I am new in webservice . Anyone have any ideas or suggestion is much
appreciated. Thanks
serialization error: serialization error:
java.lang.NullPointerException
at
com.sun.xml.rpc.encoding.DynamicInternalTypeMappingRegistry.getSerializer(DynamicInternalTypeMappingRegistry.java:
196)
at
com.sun.xml.rpc.encoding.literal.LiteralResponseSerializer.initialize(LiteralResponseSerializer.java:
230)
at
com.sun.xml.rpc.client.dii.BasicCall.createRpcLiteralResponseSerializer(BasicCall.java:
757)
at
com.sun.xml.rpc.client.dii.BasicCall.getResponseDeserializer(BasicCall.java:
690)
at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:
486)
at com.test.client.TestWebService.main(TestWebService.java:45)
This is the web service client code:
public static void main(String [] args){
try{
String wsdlURL = "http://cxrus020:8080/HelloWebService/
HelloWS?wsdl";
String namespace = "urn:HelloWS/wsdl";
String serviceName = "HelloWS";
QName serviceQN = new QName(namespace, serviceName);
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service service = serviceFactory.createService(new
URL(wsdlURL), serviceQN);
Call call = service.createCall();
call.setPortTypeName(serviceQN);
call.setOperationName(new QName(namespace, "greet"));
call.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY, "");
call.addParameter("string_1",serviceQN,javax.xml.rpc.ParameterMode.IN);
call.setReturnType(serviceQN);
Object[] inParams = new Object[]{"weetat is testing"};
String ret = (String) call.invoke(inParams);
System.out.println("ret:" + ret);
}catch(Exception ex){
ex.printStackTrace();
}
The wsdl file for your reference :
<definitions name='HelloWS' targetNamespace='urn:HelloWS/wsdl'
xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://
schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='urn:HelloWS/wsdl'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
<types></types>
<message name='HelloWSSEI_greet'>
<part name='String_1' type='xsd:string'/>
</message>
<message name='HelloWSSEI_greetResponse'>
<part name='result' type='xsd:string'/>
</message>
<portType name='HelloWSSEI'>
<operation name='greet' parameterOrder='String_1'>
<input message='tns:HelloWSSEI_greet'/>
<output message='tns:HelloWSSEI_greetResponse'/>
</operation>
</portType>
<binding name='HelloWSSEIBinding' type='tns:HelloWSSEI'>
<soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/
http'/>
<operation name='greet'>
<soapperation soapAction=''/>
<input>
<soap:body namespace='urn:HelloWS/wsdl' use='literal'/>
</input>
<output>
<soap:body namespace='urn:HelloWS/wsdl' use='literal'/>
</output>
</operation>
</binding>
<service name='HelloWS'>
<port binding='tns:HelloWSSEIBinding' name='HelloWSSEIPort'>
<soap:address location='http://cxrus020:8080/HelloWebService/
HelloWS'/>
</port>
</service>
</definitions>