在Axis2
中提供了一個Axis2
模塊(soapmonitor
),該模塊實現了與《WebService大講堂之Axis2(9):編寫Axis2模塊(Module)》中實現的logging
模塊相同的功能,所不同的是,logging
模塊直接將SOAP
請求與響應消息輸出到Tomcat
控制臺中,而soapmonitor
模塊利用applet
直接在頁面中輸出SOAP
請求和響應消息。??? 下面是配置和使用soapmonitor模塊的步驟:???
第1步:部署Applet和Servlet
??? 由于axis2默認情況下已經自帶了soapmonitor模塊,因此,soapmonitor模塊并不需要單獨安裝。但applet所涉及到的相應的.class文件需要安裝一下。在<Tomcat安裝目錄>\webapps\axis2\WEB-INF\lib目錄中找到soapmonitor-1.4.1.jar文件,將該文件解壓。雖然applet并不需要soapmonitor-1.4.1.jar文件中所有的.class文件,但為了方便,讀者也可以直接將解壓目錄中的org目錄復制到<Tomcat安裝目錄>\webapps\axis2目錄中,Applet所需的.class文件需要放在這個目錄。然后再將org目錄復制到<Tomcat安裝目錄>\webapps\axis2\WEB-INF\classes目錄中,soapmonitor模塊中的Servlet所對應的.class文件需要放在這個目錄。
第2步:配置Servlet
??? 打開<Tomcat安裝目錄>\webapps\axis2\WEB-INF\web.xml文件,在其中加入如下的內容:
<servlet>
????<servlet-name>SOAPMonitorService</servlet-name>
????<servlet-class>
????????org.apache.axis2.soapmonitor.servlet.SOAPMonitorService
????</servlet-class>
????<init-param>
????????<param-name>SOAPMonitorPort</param-name>
????????<param-value>5001</param-value>
????</init-param>
????<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
????<servlet-name>SOAPMonitorService</servlet-name>
????<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>
第3步:在services.xml文件中引用soapmonitor模塊
???
與引用logging模塊一樣,引用soapmonitor模塊也需要使用<module>元素,引用soapmonitor模塊的services.xml文件的內容如下:
<service?name="myService">
????<description>
????????使用logging和soapmonitor模塊
????</description>
????<!--??引用logging模塊??-->
????<module?ref="logging"/>
????<!--??引用soapmonitor模塊??-->
????<module?ref="soapmonitor"/>
????<parameter?name="ServiceClass">
????????service.MyService???
????</parameter>
????<messageReceivers>
????????<messageReceiver?mep="http://www.w3.org/2004/08/wsdl/in-out"
????????????class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"?/>
????</messageReceivers>
</service>
??? 由于soapmonitor模塊已經在axis2.xml進行配置了,因此,在本例中不需要再對axis2.xml文件進行配置了。???
第4步:使用soapmonitor模塊
??? 啟動Tomcat后,在瀏覽器中輸入如下的URL:
http://localhost:8080/axis2/SOAPMonitor
??? 在瀏覽器中將出現soapmonitor所帶的Applet的界面,當訪問MyService的getGreeting方法時,在Tomcat控制臺與Applet中都顯示了相應的SOAP請求和響應消息。如圖1和圖2分別是調用了兩次getGreeting方法后輸出的SOAP請求和響應消息。

圖1

圖2
??? 如果讀者想讓logging和soapmonitor模塊監視部署在Axis2中的所有WebService,可以在axis2.xml文件中使用<module>元素來引用這兩個模塊,代碼如下:
????<!--??引用logging模塊??-->
????<module?ref="logging"/>
????<!--??引用soapmonitor模塊??-->
????<module?ref="soapmonitor"/>