关于JAVA调用axis客户端爆出org.apache.axis2.AxisFault: Namespace URI may not be nul问题
求教。正在写一个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 写就可以了
补充:Java , Web 开发