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