The Artima Developer Community
Sponsored Link

Web Services Forum
Axis INOUT parameters problem

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Elitsa Stoyanova

Posts: 1
Nickname: eka
Registered: Nov, 2006

Axis INOUT parameters problem Posted: Nov 21, 2006 7:10 AM
Reply to this message Reply
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.

Topic: Regarding connect Timeout in gSOAP Previous Topic   Next Topic Topic: Web Service

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use