在调用一个无参有返回值的方法时抛出如下异常:
org.apache.axis2.AxisFault: The input stream for an incoming message is null.
错误原因是我的services.xml文件配置错误。
方法如下:
public String getHello(){return "Hello World";}
在services.xml中应该这样写:
<operation name="getHello">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
而不应该是:
<operation name="getHello">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
</operation>
1、
当方法体没有参数返回的时候,我们要采用RPCServiceClient.invokeRobust(QName, new Object[]{..});
当有返回参数的时候采用:RPCServiceClient.invokeBlocking(QName, new Object[]{..},new Class[]{..})
2、services.xml配置中,
<operation name="getHello">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
<!-- 有返回值 -->
</operation>
<operation name="hello">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<!-- 无返回值 -->
</operation>
public String getHello(){return "hello world";}
public String getHello(String name ){return name+" Hello";}
public void hello(String a){ this.a = a;}