[转]Axis1.2 下SOAPMonitor问题的解决
Axis1.2+Jdk1.5+Tomcat5.5.12 ,安装成功以后,SOAPMonitor能启动,但是红字的一串信息:The SOAPMonitor is unable to communicate with the server. 就表示启动不成功,折腾几天,google查找了好多信息,也没有一个确切的说法,国内有人说版本问题,似乎axis1.2只适用于jdk1.4或是tomcat5.0版本,还真试过改了,也没有效果,在java控制台上有提示非法的本地主机地址。一次偶然的机会,让我知道该改哪个数据了。(同一台机器上安装多个tomcat,相同的端口再现冲突时就需要对端口进行更改)
可能是默认的5001端口被占用,将axis\WEB-INF下的web.xml文件中的SOAPMonitor的端口默认的5001改为其他的不会出现冲突的端口,问题解决。
唉,有时一个不起眼的问题也能折腾死人,解决后只会一声叹息。
在tomcat容器下自创建的web应用中也启动axis服务,想要添加SOAPMonitor的方法是:
1、编译
将axis根目录下的SOAPMonitorApplet.java文件复制到web应用的根目录下,编译此文件同时将生成的类文件复制到应用根目录下的WEB-INF目录下。
2、修改web.xml文件
修改WEB-INF目录下的web.xml文件,添加两个元素<servlet>和<servlet-mapping>,具体内容如下:
<servlet>
<servlet-name>SOAPMonitorService</servlet-name>
<display-name>SOAPMonitorService</display-name>
<servlet-class>
org.apache.axis.monitor.SOAPMonitorService
</servlet-class>
<init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value>5005</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>
3、修改server-config.wsdd文件
配置文件中添加soapmonitor的配置信息如:
<handler name="soapmonitor" type="java:org.apache.axis.handlers.SOAPMonitorHandler">
<service name="SOAPMonitorService" provider="java:RPC">
<parameter name="allowedMethods" value="publishMessage"/>
<parameter name="scope" value="Application"/>
<parameter name="className" value="org.apache.axis.monitor.SOAPMonitorService"/>
</service>
对于需要被soapmonitor监控的web服务,在其服务设置中添加信息如下
<service name="TestAdding" provider="java:RPC">
<parameter name="allowedMethods" value="getAdd"/>
<parameter name="className" value="test.TestAdding"/>
<requestFlow>
<handler type="soapmonitor"/>
</requestFlow>
<responseFlow>
<handler type="soapmonitor"/>
</responseFlow>
</service>
4、运行测试
http://localhost:8080/TestAdding/SOAPMonitor
呵呵,好不容易折腾好了,看来原来的想法还是对的,只不过在配置文件时出了问题。
可能是默认的5001端口被占用,将axis\WEB-INF下的web.xml文件中的SOAPMonitor的端口默认的5001改为其他的不会出现冲突的端口,问题解决。
唉,有时一个不起眼的问题也能折腾死人,解决后只会一声叹息。
在tomcat容器下自创建的web应用中也启动axis服务,想要添加SOAPMonitor的方法是:
1、编译
将axis根目录下的SOAPMonitorApplet.java文件复制到web应用的根目录下,编译此文件同时将生成的类文件复制到应用根目录下的WEB-INF目录下。
2、修改web.xml文件
修改WEB-INF目录下的web.xml文件,添加两个元素<servlet>和<servlet-mapping>,具体内容如下:
<servlet>
<servlet-name>SOAPMonitorService</servlet-name>
<display-name>SOAPMonitorService</display-name>
<servlet-class>
org.apache.axis.monitor.SOAPMonitorService
</servlet-class>
<init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value>5005</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>
3、修改server-config.wsdd文件
配置文件中添加soapmonitor的配置信息如:
<handler name="soapmonitor" type="java:org.apache.axis.handlers.SOAPMonitorHandler">
<service name="SOAPMonitorService" provider="java:RPC">
<parameter name="allowedMethods" value="publishMessage"/>
<parameter name="scope" value="Application"/>
<parameter name="className" value="org.apache.axis.monitor.SOAPMonitorService"/>
</service>
对于需要被soapmonitor监控的web服务,在其服务设置中添加信息如下
<service name="TestAdding" provider="java:RPC">
<parameter name="allowedMethods" value="getAdd"/>
<parameter name="className" value="test.TestAdding"/>
<requestFlow>
<handler type="soapmonitor"/>
</requestFlow>
<responseFlow>
<handler type="soapmonitor"/>
</responseFlow>
</service>
4、运行测试
http://localhost:8080/TestAdding/SOAPMonitor
呵呵,好不容易折腾好了,看来原来的想法还是对的,只不过在配置文件时出了问题。