關於axis 1.4 的 soapmonitor 配置

因爲需要寫一個WS的服務端程序,用來接收消息,而且對方文檔和wsdl文件都是使用axis 1.x版本做的,所以只能使用axis1.4來做了,官方網站上只有axis1.4可以下載了。

axis1.4的配置倒是很簡單,網上也有很多資料,這裏就不重複了。

參考資料如:http://www.cnblogs.com/qqzy168/p/3372330.html

axis1.4部署好了,默認情況下,SOAPMonitor是關閉的,如果要打開,需要如下步驟:

1、查找SOAPMonitorApplet.java程序,編譯它,並將生成的class文件放到webapps\axis目錄下,這裏假定WEB根目錄爲webapps,axis爲部署目錄,訪問SOAPMonitor的目錄爲:http://localhost:8080/axis/SOAPMonitor

2、不知道是不是因爲我下載的axis1.4包的問題,在使用appletviewer http://localhost:8080/axis/SOAPMonitor運行小程序時,會報錯,如下:

HTML 解析: 寬度/高度屬性的值不正確

java.lang.NumberFormatException: For input string: "100%"

所以我又上官網[http://www.eu.apache.org/dist/axis/axis/java/1.4/]下載了源碼,修改了org.apache.axis.monitor.SOAPMonitorService的167行:

response.getWriter().println("<embed type=\"application/x-java-applet;version=1.3\" code=SOAPMonitorApplet.class width=100% height=100% port=\""+port+"\" scriptable=false pluginspage=\"http://java.sun.com/products/plugin/1.3/plugin-install.html\">");

修改成如下:

response.getWriter().println("<embed type=\"application/x-java-applet;version=1.3\" code=SOAPMonitorApplet.class width=800 height=600 port=\""+port+"\" scriptable=false pluginspage=\"http://java.sun.com/products/plugin/1.3/plugin-install.html\">");

3、將生成的3個class文件替換原來的axis.jar裏org.apache.axis.monitor目錄下相應文件

4、按照其他網友文章部署後,即可訪問了,參考資料如下:

http://m.blog.csdn.net/blog/chong232/3992004

如果按照這個的話,在客戶端調用時會報錯:

faultString: org.apache.axis.ConfigurationException: Can't find handler name:'null' type:'soapmonitor' in the registry

需要修改server-config.wsdd文件,加上兩段:

<handler name="soapmonitor"   type="java:org.apache.axis.handlers.SOAPMonitorHandler">
        
<parameter name="wsdlURL"   value="/axis/SOAPMonitorService-impl.wsdl"/>
        
<parameter name="namespace"   value="http://tempuri.org/wsdl/2001/12/SOAPMonitorService-impl.wsdl"/>
        
<parameter name="serviceName" value="SOAPMonitorService"/>
        
<parameter name="portName" value="Demo"/>
      
</handler>

<service name="SOAPMonitorService" provider="java:RPC">
        
<parameter name="allowedMethods" value="publishMessage"/>
        
<parameter name="className"   value="org.apache.axis.monitor.SOAPMonitorService"/>
        
<parameter name="scope" value="Application"/>
      
</service>

可結合如下資料進行修改解決:

http://www.blogjava.net/RongHao/archive/2007/06/12/123635.html

5、剛開始我也是按照第4條,網上大部分的資料那樣來安裝,後來發現不行,所以一步一步去解決,終於出現了applet界面,現在記錄下來,作爲記憶以備下次再用,也希望對遇到同樣問題的人有幫助。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章