I have the following service deployed on axis2:
public class InventoryService {
  public int addInventory(String sku, int quantity) {
//do something
    return quantity;
  }

with the following services.xml

<service name="InventoryService">
    <parameter name="ServiceClass"
locked="false">ch02.InventoryService</parameter>
    <operation name="addInventory">
        <messageReceiver 
mep="http://www.w3.org/2004/08/wsdl/in-out";
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
    </operation>
</service>

Here is the client code:
public class InventoryClient {
    private static EndpointReference targetEPR = new
EndpointReference("http://localhost:8081/axis2/services/InventoryService";);
  public static void main(String[] args) throws
Exception {
        try {
        QName qn = new QName("http://ch02","addInventory";);
        String sku = "ANT456";
        Integer quantity = new Integer("456");
        Object [] inputParams = new Object[]
{"ant123","456"};

            Options options = new Options();
            options.setTo(targetEPR);
           
options.setTransportInProtocol(Constants.TRANSPORT_HTTP);

            //Blocking invocation
            RPCServiceClient sender = new
RPCServiceClient();
            sender.setOptions(options);
             OMElement result =
sender.invokeBlocking(qn,inputParams);

            StringWriter writer = new StringWriter();
           
result.serialize(XMLOutputFactory.newInstance()
                    .createXMLStreamWriter(writer));
            writer.flush();

            System.out.println(writer.toString());

        } catch (AxisFault axisFault) {
            axisFault.printStackTrace();
        }

  }
}

I keep getting the following error:

<?xml version='1.0'
encoding='UTF-8'?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";><soapenv:Header
/><soapenv:Body><soapenv:Fault><faultcode>Client</faultcode><faultstring>Raw
Xml provider supports only the methods bearing the
signature public OMElement
&amp;lt;method-name&amp;gt;(OMElement) where the
method name can be
anything</faultstring><faultactor>http://myAxisServer/role/default</faultactor><detail><soapenv:Exception>org.apache.axis2.AxisFault:
Raw Xml provider supports only the methods bearing the
signature public OMElement
&amp;lt;method-name&amp;gt;(OMElement) where the
method name can be anything

        at
org.apache.axis2.receivers.RawXMLINOutMessageReceiver.invokeBusinessLogic(RawXMLINOutMessageReceiver.java:121)

        at
org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(AbstractInOutSyncMessageReceiver.java:37)

        at
org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:331)

        at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:274)

        at
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:150)

        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:237)

        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)

        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)

        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

        at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)

        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)

        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)

        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

        at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)

        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)

        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)

        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)

        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)

        at java.lang.Thread.run(Thread.java:534)

</soapenv:Exception></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>


Why isnt rpcMessageReceiver picking this up?



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Reply via email to