|
|
Axis INOUT parameters problem
|
Posted: Nov 21, 2006 7:10 AM
|
|
|
Advertisement
|
Hello, My problem is connected to the INOUT parameters in a web service, deployed to AXIS
1. I have a very simple web service java class
package samples.InOutParameterTest;
public class InOutParameterTest { public InOutParameterTest() { }
public static void main(String[] args) { InOutParameterTest inoutparametertest = new InOutParameterTest(); }
public void SayHi(javax.xml.rpc.holders.StringHolder str) { str.value = "Hi :)"; } }
2. A deploy.wsdd file
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="InOutParameterTest" provider="java:RPC"> <parameter name="className" value="samples.InOutParameterTest.InOutParameterTest"/> <parameter name="allowedMethods" value="*"/> <operation name="SayHi"> <parameter name="str" mode="INOUT"/> </operation> </service>
</deployment>
3. And a client java class to call the service
package samples.InOutParameterTest;
import org.apache.axis.client.Service; import org.apache.axis.encoding.XMLType; import org.apache.axis.client.Call; import javax.xml.rpc.ParameterMode;
public class CallInOutParameterTest { public CallInOutParameterTest() { }
public static void main(String[] args) throws Exception { CallInOutParameterTest callinoutparametertest = new CallInOutParameterTest();
String endpoint = "http://localhost:8080/axis/services/InOutParameterTest";
Service service = new Service(); Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setOperationName("SayHi"); call.addParameter( "str", XMLType.XSD_STRING, ParameterMode.INOUT );
call.setReturnType( XMLType.AXIS_VOID );
javax.xml.rpc.holders.StringHolder strHolder = new javax.xml.rpc.holders.StringHolder("p");
call.invoke(new Object[] {strHolder});
System.out.println("value = " + strHolder.value); } }
I deploy the service successfully, but when I try to call it's SayHi method in the java class in 3. the following No serializer found for class
javax.xml.rpc.holders.StringHolder error occurs:
2006-11-21 16:56:59 org.apache.axis.utils.JavaUtils isAttachmentSupportedWARNING: Unable to find required classes (javax.activation.DataHandler and
javax.mail.internet.MimeMultipart). Attachment support is disabled. AxisFault faultCode:
{http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.io.IOException: No serializer found for class
javax.xml.rpc.holders.StringHolder in registry org.apache.axis.encoding.TypeMappingImpl@811c88 faultActor: faultNode: faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.io.IOException: No serializer found for class javax.xml.rpc.holders.StringHolder in registry
org.apache.axis.encoding.TypeMappingImpl@811c88 at
org.apache.axis.encoding.SerializationContextImpl.serializeActual(Serializati onContextImpl.java:1268) at
org.apache.axis.encoding.SerializationContextImpl.serialize(SerializationCont extImpl.java:779) at
org.apache.axis.encoding.SerializationContextImpl.outputMultiRefs(Serializati onContextImpl.java:850) at
org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:145) at
org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:484) at
org.apache.axis.message.MessageElement.output(MessageElement.java:899) at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:298) at
org.apache.axis.SOAPPart.writeTo(SOAPPart.java:272) at org.apache.axis.SOAPPart.saveChanges(SOAPPart.java:483) at
org.apache.axis.SOAPPart.getContentLength(SOAPPart.java:217) at org.apache.axis.Message.getContentLength(Message.java:490) at
org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:336) at
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:88) at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:3 2) at
org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at
org.apache.axis.client.AxisClient.invoke(AxisClient.java:147) at org.apache.axis.client.Call.invokeEngine(Call.java:2735) at
org.apache.axis.client.Call.invoke(Call.java:2718) at org.apache.axis.client.Call.invoke(Call.java:2394) at
org.apache.axis.client.Call.invoke(Call.java:2317) at org.apache.axis.client.Call.invoke(Call.java:1774) at
samples.InOutParameterTest.CallInOutParameterTest.main(CallInOutParameterTest .java:31)
{http://xml.apache.org/axis/}hostname:MAVjava.io.IOException: No serializer found for class javax.xml.rpc.holders.StringHolder in registry
org.apache.axis.encoding.TypeMappingImpl@811c88 at org.apache.axis.AxisFault.makeFault(AxisFault.java:101) at
org.apache.axis.SOAPPart.writeTo(SOAPPart.java:300) at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:272) at
org.apache.axis.SOAPPart.saveChanges(SOAPPart.java:483) at org.apache.axis.SOAPPart.getContentLength(SOAPPart.java:217) at
org.apache.axis.Message.getContentLength(Message.java:490) at
org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:336) at
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:88) at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:3 2) at
org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at
org.apache.axis.client.AxisClient.invoke(AxisClient.java:147) at org.apache.axis.client.Call.invokeEngine(Call.java:2735) at
org.apache.axis.client.Call.invoke(Call.java:2718) at org.apache.axis.client.Call.invoke(Call.java:2394) at
org.apache.axis.client.Call.invoke(Call.java:2317) at org.apache.axis.client.Call.invoke(Call.java:1774) at
samples.InOutParameterTest.CallInOutParameterTest.main(CallInOutParameterTest .java:31)Caused by: java.io.IOException: No serializer found for
class javax.xml.rpc.holders.StringHolder in registry org.apache.axis.encoding.TypeMappingImpl@811c88 at
org.apache.axis.encoding.SerializationContextImpl.serializeActual(Serializati onContextImpl.java:1268) at
org.apache.axis.encoding.SerializationContextImpl.serialize(SerializationCont extImpl.java:779) at
org.apache.axis.encoding.SerializationContextImpl.outputMultiRefs(Serializati onContextImpl.java:850) at
org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:145) at
org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:484) at
org.apache.axis.message.MessageElement.output(MessageElement.java:899) at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:298) ... 16
moreException in thread "main"
Can someone please help me with this error? Thank you for your time! Eka.
|
|