今天在迁移查询接口的时候,遇到一个问题:在jboss7中发布的webservice接口访问不到(404),应该是某个地方的配置出了问题,下面详细介绍一下配置
1、涉及到的jar包:axis2-adb-1.5.4.jar axis2-adb-codegen-1.5.4.jar axis2-codegen-1.5.4.jar axis2-java2wsdl-1.5.4.jar axis2-kernel-1.5.4.jar axis2-spring-1.5.4.jar axis2-transport-http-1.5.4.jar axis2-transport-local-1.5.4.jar 以我们项目里的policyBaseInfoService为例发布
2、修改项目里的web.xml,增加拦截axis2请求的配置,配置如下:
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
3、在项目的WEB-INF下新建services包,包里放上service.xml文件,如下:
service.xml内容:
<serviceGroup>
<service name="PolicyBaseInfoService" scope="application">
<description>
policy base info service
</description>
<parameter name="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier</parameter>
<parameter name="SpringBeanName">policyBaseInfoService</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
</messageReceivers>
<operation name="transBaseDate">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
</service>
</serviceGroup>
或者不交给spring管理,可以直接定义service对应的类路径,如下:
5、配置好后,在浏览器里打开,看是否成功