2011-09-28 116 views
0

调用Axis 2 Webservice的Axis 2客户端(wsdl2java生成的代码)没有收到服务抛出的RuntimeException。被调用的方法是无效方法Axis 2客户端未收到来自Axis 2 Web服务的抛出异常

我用于客户端和服务器的Axis 2版本是1.6.1。

当我运行以下测试成功完成,并没有收到异常:

@Test 
public void testMyService() throws RemoteException { 
    String target = "http://localhost:8080/services/MyService"; 
    MyServiceStub myServiceStub = new MyServiceStub(target); 
    myServiceStub.doSomething(); 
} 

MyService.java:

package com.afirme.webservice.service; 

@Service 
public class MyService { 

    public void doSomething() { 
     throw new IllegalArgumentException("Just testing!"); 
    } 

} 

的services.xml:

<serviceGroup> 
    <service name="MyService"> 
     <description> 
      My Service 
     </description> 
     <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="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier</parameter> 
     <parameter name="SpringBeanName">myService</parameter> 
    </service> 
</serviceGroup> 
+0

请参阅[这个问题](http://stackoverflow.com/questions/3954632/create-custom-exceptions-in-axis2)。你需要抛出一个'AxisFault'。 – ig0774

+0

这没有奏效。 –

+0

那么你真的尝试了什么? – ig0774

回答

2

此操作只有一个。所以你不会收到任何肥皂故障。如果你想抛出错误,你的操作必须是一个输入错误。

相关问题