在 tomcat 容器中可以正常发布axis2的webservice,但是更换为weblogic之后就报No services found in this location,这是因为程序没有找到WEB-INF/services/...下的services.xml所致,在加载services.xml配置在web.xml中,配置如下 <servlet>
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
<!-- <init-param>
<param-name>axis2.repository.path</param-name>
<param-value>
/WEB-INF
</param-value>
</init-param> -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
即使指定/WEB-INF 还是不行,<param-value>的值必须是D:\axis2tomcat\apache-tomcat-6.0.35\webapps\wt\WEB-INF 物理路径,但是由于我所处的环境为weblogic的集群环境,所以配置这种方法不可行。
那么 <init-param> 节点注释掉,让程序为默认,然后在部署发布项目的时候 weblogic不是以war形式或jar形式发布,而是以目录形式发布,然后启动项目即可加载到WEB-INF下的services.xml
附录:weblogic目录形式发布项目,进入控制台-锁定并编辑-安装,/weblogic/Oracle/Middleware/wlserver_10.3/common/templates/applications 把程序以文件夹的方式上传到此处,点击下一步下一步即可