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?

呵呵,好不容易折騰好了,看來原來的想法還是對的,只不過在配置文件時出了問題。