在从另一个使用Axis2 Web服务时,是否有任何人经历过以下操作?两者都托管在相同的Wso2 ESB实例(4.0.3)上。我无法弄清楚出了什么问题,顺便说一下这些是Wso2安装附带的2个示例服务,我刚刚添加了代码来消费。这是片段:
public GetQuoteResponse getSimpleQuote(String symbol) {
System.out.println(new Date() + " " + this.getClass().getName() +
" :: Generating quote for : " + symbol);
try {
EchoStub stub = new EchoStub();
new EchoString();
EchoString es = new EchoString();
es.setIn("Hello");
EchoStringResponse resp = stub.echoString(es);
} catch (AxisFault e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return new GetQuoteResponse(symbol);
}
服务类:
package org.wso2.carbon.core.services.echo;
import javax.xml.namespace.QName;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axis2.AxisFault;
public class Echo
{
public OMElement echoOMElement(OMElement omEle)
{
return omEle;
}
public String echoString(String in) {
return in;
}
public int echoInt(int in) {
return in;
}
public String throwAxisFault() throws AxisFault
{
OMFactory fac = OMAbstractFactory.getOMFactory();
OMElement ele = fac.createOMElement("wso2wsas", fac.createOMNamespace("", ""));
ele.setText("This is a method which simply throws an AxisFault");
throw new AxisFault(new QName("wso2wsas_code"), "This is a method which simply throws an AxisFault", "wso2_node", "admin", ele);
}
public SimpleBean echoStringArrays(String[] a, String[] b, int c)
{
SimpleBean bean = new SimpleBean();
bean.setA_r(a);
bean.setB_r(b);
bean.setC(c);
return bean;
}
}
Fri Apr 06 14:22:08 EDT 2012 samples.services.SimpleStockQuoteService :: Generating quote for : AB
org.apache.axis2.AxisFault: The input stream for an incoming message is null.
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:92)
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:67)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:354)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at org.wso2.carbon.core.services.echo.EchoStub.echoString(EchoStub.java:233)
at samples.services.SimpleStockQuoteService.getSimpleQuote(SimpleStockQuoteService.java:52)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
at org.apache.synapse.transport.nhttp.ServerWorker.processEntityEnclosingMethod(ServerWorker.java:409)
at org.apache.synapse.transport.nhttp.ServerWorker.run(ServerWorker.java:261)
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:173)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
[2012-04-06 14:22:08,922] ERROR - AxisEngine Message Receiver not found for AxisOperation: {http://echo.services.core.carbon.wso2.org}echoString
org.apache.axis2.AxisFault: Message Receiver not found for AxisOperation: {http://echo.services.core.carbon.wso2.org}echoString
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:177)
at org.apache.synapse.transport.nhttp.ClientWorker.run(ClientWorker.java:275)
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:173)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
[2012-04-06 14:22:08,922] WARN - ClientWorker Fault processing response message through Axis2: Message Receiver not found for AxisOperation: {http://echo.services.core.carbon.wso2.org}echoString
[2012-04-06 14:22:08,922] ERROR - NativeWorkerPool Uncaught exception
java.lang.NullPointerException
at org.apache.synapse.transport.nhttp.ClientWorker.run(ClientWorker.java:298)
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:173)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)