Hello,
I'm trying to invoke an Axis2 web service that returns a java.util.Date in its response, but am getting the exception below. I'm using a snapshot from a few days back. I've also included my sample web service implementation. Is this supposed to work?
Thanks!
James
org.apache.axis2.AxisFault: Exception occurred while trying to invoke service method echo
at org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:287)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:457)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:399)
at helloworld.axis2.MyRPCClient.main(MyRPCClient.java:40)
Caused by: java.lang.Exception: org.apache.axis2.AxisFault: Exception occurred while trying to invoke service method echo; nested exception is:
org.apache.axiom.om.OMException: java.lang.IllegalArgumentException: null rcl
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:142)
at org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(AbstractInOutSyncMessageReceiver.java:37)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:480)
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:284)
at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:138)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.axiom.om.OMException: java.lang.IllegalArgumentException: null rcl
at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:206)
at org.apache.axiom.om.impl.llom.OMNodeImpl.build(OMNodeImpl.java:298)
at org.apache.axiom.om.impl.llom.OMElementImpl.detach(OMElementImpl.java:584)
at org.apache.axiom.om.impl.llom.OMNodeImpl.setParent(OMNodeImpl.java:118)
at org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:240)
at org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:197)
at org.apache.axis2.rpc.receivers.RPCUtil.processResponse(RPCUtil.java:71)
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:133)
... 20 more
Caused by: java.lang.IllegalArgumentException: null rcl
at org.codehaus.jam.internal.reflect.ReflectClassBuilder.<init>(ReflectClassBuilder.java:47)
at org.codehaus.jam.provider.JamServiceFactoryImpl.createBuilder(JamServiceFactoryImpl.java:173)
at org.codehaus.jam.provider.JamServiceFactoryImpl.createClassLoader(JamServiceFactoryImpl.java:137)
at org.codehaus.jam.provider.JamServiceFactoryImpl.createService(JamServiceFactoryImpl.java:78)
at org.apache.axis2.databinding.utils.BeanUtil.getPullParser(BeanUtil.java:57)
at org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.processProperties(ADBXMLStreamReaderImpl.java:953)
at org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.next(ADBXMLStreamReaderImpl.java:826)
at org.apache.axis2.util.StreamWrapper.next(StreamWrapper.java:68)
at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:123)
... 27 more
at org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:287)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:457)
at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:399)
at helloworld.axis2.MyRPCClient.main(MyRPCClient.java:40)
Caused by: java.lang.Exception: org.apache.axis2.AxisFault: Exception occurred while trying to invoke service method echo; nested exception is:
org.apache.axiom.om.OMException: java.lang.IllegalArgumentException: null rcl
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:142)
at org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(AbstractInOutSyncMessageReceiver.java:37)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:480)
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:284)
at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:138)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.axiom.om.OMException: java.lang.IllegalArgumentException: null rcl
at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:206)
at org.apache.axiom.om.impl.llom.OMNodeImpl.build(OMNodeImpl.java:298)
at org.apache.axiom.om.impl.llom.OMElementImpl.detach(OMElementImpl.java:584)
at org.apache.axiom.om.impl.llom.OMNodeImpl.setParent(OMNodeImpl.java:118)
at org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:240)
at org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:197)
at org.apache.axis2.rpc.receivers.RPCUtil.processResponse(RPCUtil.java:71)
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:133)
... 20 more
Caused by: java.lang.IllegalArgumentException: null rcl
at org.codehaus.jam.internal.reflect.ReflectClassBuilder.<init>(ReflectClassBuilder.java:47)
at org.codehaus.jam.provider.JamServiceFactoryImpl.createBuilder(JamServiceFactoryImpl.java:173)
at org.codehaus.jam.provider.JamServiceFactoryImpl.createClassLoader(JamServiceFactoryImpl.java:137)
at org.codehaus.jam.provider.JamServiceFactoryImpl.createService(JamServiceFactoryImpl.java:78)
at org.apache.axis2.databinding.utils.BeanUtil.getPullParser(BeanUtil.java:57)
at org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.processProperties(ADBXMLStreamReaderImpl.java:953)
at org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.next(ADBXMLStreamReaderImpl.java:826)
at org.apache.axis2.util.StreamWrapper.next(StreamWrapper.java:68)
at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:123)
... 27 more
at org.apache.axis2.AxisFault.<init>(AxisFault.java:159)
... 4 more
... 4 more
MyRPCService.java
---------------------
package helloworld.axis2;
public class MyRPCService {
public MyQuote echo(String theString) {
return new MyQuote (theString);
}
}
public MyQuote echo(String theString) {
return new MyQuote (theString);
}
}
MyQuote.java
---------------
package helloworld.axis2;
import java.io.Serializable;
import java.util.Date;
import java.util.Date;
public class MyQuote implements Serializable {
private String quote;
private Date when;
public MyQuote () {
}
public MyQuote (String theQuote) {
quote = theQuote;
when = new Date();
}
public String getQuote () {
return quote;
}
public void setQuote (String theQuote) {
quote = theQuote;
}
public Date getWhen () {
return when;
}
public void setWhen (Date theDate) {
when = theDate;
}
}
private String quote;
private Date when;
public MyQuote () {
}
public MyQuote (String theQuote) {
quote = theQuote;
when = new Date();
}
public String getQuote () {
return quote;
}
public void setQuote (String theQuote) {
quote = theQuote;
}
public Date getWhen () {
return when;
}
public void setWhen (Date theDate) {
when = theDate;
}
}
services.xml
------------
<?xml version="1.0" encoding="UTF-8"?>
<serviceGroup>
<service name="MyRPCService">
<description>
This is a sample Web Service with one operation.
</description>
<parameter name="ServiceClass" locked="false">helloworld.axis2.MyRPCService</parameter>
<operation name="echo">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
<actionMapping>urn:echo</actionMapping>
</operation>
</service>
</serviceGroup>
MyRPCClient.java
-------------------
package helloworld.axis2;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
public class MyRPCClient {
private static EndpointReference targetEPR = new EndpointReference("http://localhost:8080/axis2/services/MyRPCService");
private static EndpointReference targetEPR = new EndpointReference("http://localhost:8080/axis2/services/MyRPCService");
public static OMElement createPayload() {
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace(
"http://axis2.helloworld/xsd", "rpc-ex");
OMElement method = fac.createOMElement("echo", omNs);
OMElement value = fac.createOMElement("theString", omNs);
value.addChild(fac.createOMText(value, "Hello World"));
method.addChild(value);
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace(
"http://axis2.helloworld/xsd", "rpc-ex");
OMElement method = fac.createOMElement("echo", omNs);
OMElement value = fac.createOMElement("theString", omNs);
value.addChild(fac.createOMText(value, "Hello World"));
method.addChild(value);
return method;
}
}
/**
* @param args
*/
public static void main(String[] args) {
try {
OMElement payload = createPayload();
Options options = new Options();
options.setTo(targetEPR); // this sets the location of MyService service
ServiceClient serviceClient = new ServiceClient();
serviceClient.setOptions(options);
* @param args
*/
public static void main(String[] args) {
try {
OMElement payload = createPayload();
Options options = new Options();
options.setTo(targetEPR); // this sets the location of MyService service
ServiceClient serviceClient = new ServiceClient();
serviceClient.setOptions(options);
OMElement result = serviceClient.sendReceive(payload);
System.out.println(result);
System.out.println(result);
} catch (AxisFault axisFault) {
axisFault.printStackTrace();
}
}
axisFault.printStackTrace();
}
}
}