Handler的基本概念 J2EE web service中的Handler技術特點非常像Servlet技術中的Filter。我們知道,在Servlet中,當一個HTTP到達服務端時,往往要經過多個Filter對請求進行過濾,然后才到達提供服務的Servlet,這些Filter的功能往往是對請求進行統一編碼,對用戶進行認證,把用戶的訪問寫入系統日志等。相應的,Web服務中的Handler通常也對soap請求和響應包靈活操作,功能非常強大。
使用Axis SOAP Monitor SOAP Monitor可以監測Axis soap包的內容,它是Axis內置的Handler,不過它默認并沒有發布,我們在需要用到的時候可以發布之。 1、到目錄%TOMCAT_HOME%\webapps\axis下,你會找到SOAPMonitorApplet.java,在命令行中編譯它: javac -classpath %AXIS_HOME%\lib\axis.jar SOAPMonitorApplet.java 編譯完之后你會看見目錄下多了很多CLASS文件,它們的名字是SOAPMonitorApplet*.class 2、在目錄%TOMCAT_HOME%\webapps\axis\WEB-INF下打開server-config.wsdd文件,將下面的兩部分代碼直接加入其中相應的位置 第一部分:
第二部分:
3、選擇你要監控的服務 以上次的Hello服務為例,在server-config.wsdd中你會找到這段代碼:
在這段代碼中加入以下的代碼:
最后的樣子是:
這樣Hello服務就被SOAP Monitor監控了。 同樣,可以通過depoly-monitor.wsdd的方式發布monitor:
啟動服務,在DOS下切換目錄到%TOMCAT_HOME%\webapps\axis\WEB-INF\目錄下,執行下: java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy-monitor.wsdd 然后,在需要監測的web service里面加上<handler type="soapmonitor"/>就可以了。 不過需要注意的是,服務通過JWS方式調用的話SOAP Monitor沒有監控效果。 同樣的道理,為自己的需求實現的Handler都可以通過這樣的方式發布在對應的Web服務中。網上有很多關于諸如日志、數字簽名、加密之類的Handler功能,可以找來看看。
Powered by: BlogJava Copyright © 默認為零
平凡之人悟非平凡之事,升華之道也。 本壇實乃雜燴,工作、生活、育兒、健身,指哪打哪,想哪寫哪!