求教。正在写一个webservice服务,但是,客户端始终提示URI may not be null
下面是我的service.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<service name="ServiceOne">
<!-- 通过ServiceObjectSupplier参数指定SpringServletContextObjectSupplier类来获得Spring的ApplicationContext对象 -->
<parameter name="ServiceObjectSupplier">
org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier
</parameter>
<parameter name="SpringBeanName">outSideLogin</parameter>
<operation name="Test">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
</service>
客户端的方法
public static void main(String[] args) throws AxisFault{
RPCServiceClient serviceClient=new RPCServiceClient();
Options options=serviceClient.getOptions();
EndpointReference targetEPR=new EndpointReference("http://localhost:8080/SmartOne/services/ServiceOne");
options.setTo(targetEPR);
Object[] requestParam = new Object[] {"测试"};
Class[] responseParam = new Class[] {String.class};
QName requestMethod = new QName("http://impl.service.admin.smartone.dcits.com","Test");
try{
serviceClient.invokeBlocking(requestMethod, requestParam, responseParam);
}catch(Exception e){
e.printStackTrace();
}
}
其中,这个http://impl.service.admin.smartone.dcits.com是和WDSL文档中的
targetNamespace="http://impl.service.admin.smartone.dcits.com"命名空间一致的。但是,还是报错。
------解决方案--------------------
我也遇到这个问题了 我还遇到那个不能invoke
------解决方案--------------------
求解决方法,楼主解决没?
------解决方案--------------------
LZ你这个应Spring + axis2的配置吧,把
<operation name="Test">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
改成
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
<parameter name="ServiceClass">具体类(outSideLogin类)</parameter>
Test方法不需要写在service.xml上,在QName 写就可以了
------解决方案--------------------
hi,楼主这个问题解决了吗? 悲剧了. 只是迁移了下. 代码都是一样的也出现了这个问题..
悲剧啊.