2013-05-22 45 views
0

我正在开发一个带有使用Maven的Axis2的嵌入式webservice的webapp。 服务实现是具有RPC风格交互的POJO,目标应用服务器是运行Axis2 servlet的Tomcat。适用于webapp中嵌入的Axis2的简单axis2.xml

“Hello world”有效,但现在我需要在axis2.xml文件(位于WEB-INF/conf下)中配置一些全局axis2设置。

请为此通用环境提供或指出axis2.xml的简单配置。 从二进制分发采取默认有太多的功能激活,也会导致这个问题(hotdeploy?):

<soapenv:Reason> 
    <soapenv:Text xml:lang="en-US"> 
     The ServiceClass object does not implement the required method 
     in the following form: OMElement ping(OMElement e) 
    </soapenv:Text> 
</soapenv:Reason> 

作为参考:http://axis.apache.org/axis2/java/core/docs/servlet-transport.html说来配置这样的servlet进行传输,但是它并没有解决问题。

<transportReceiver name="http" class="org.apache.axis2.transport.http.AxisServletListener"/> 

回答

3

显然问题是,默认的axis2.xml设置原始的xml messageReceivers,而不是RPC的。

尝试将此添加到开发服务的services.xml中,应该解决问题。

<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> 
3

“解决方案,能为我工作是将操作标签中对Java的服务方法名service.xml中:

<operation name="sayHello" > 
     <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> 
    </operation>   
<parameter name="ServiceClass" locked="false">com.learning.webservices.pojo.HelloService</parameter> 
+0

工作对我来说too..Thanks !!!!!!! – samash