当前位置:编程学习 > JAVA >>

关于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 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,