<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    列宿乃施于上榮兮 日月才經(jīng)于柍桭

    ………… 白駒過隙 歲月如斯 夢(mèng)縈回繞 心靈之聲
    posts - 57, comments - 8, trackbacks - 0, articles - 41
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

      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)的位置
      第一部分:

        <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>


      3、選擇你要監(jiān)控的服務(wù)
      以上次的Hello服務(wù)為例,在server-config.wsdd中你會(huì)找到這段代碼:

        <service name="Hello" provider="java:RPC">
            
    <parameter name="allowedMethods" value="sayHello"/>
            
    <parameter name="className" value="HelloWorld"/>
        
    </service>

      在這段代碼中加入以下的代碼:

        <requestFlow>
            
    <handler type="soapmonitor"/>
        
    </requestFlow>
        
    <responseFlow>
            
    <handler type="soapmonitor"/>
        
    </responseFlow>


      最后的樣子是:

        <service name="HelloWorld" provider="java:RPC">
            
    <requestFlow>
                
    <handler type="soapmonitor"/>
            
    </requestFlow>
            
    <responseFlow>
                
    <handler type="soapmonitor"/>
            
    </responseFlow>
            
    <parameter name="allowedMethods" value="sayHello"/>
            
    <parameter name="className" value="HelloWorld"/>
        
    </service>

      這樣Hello服務(wù)就被SOAP Monitor監(jiān)控了。
          
      同樣,可以通過depoly-monitor.wsdd的方式發(fā)布monitor:

        <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
            
    <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>
        
    </deployment>

      啟動(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功能,可以找來看看。

    主站蜘蛛池模板: 亚洲an日韩专区在线| 最近免费中文字幕高清大全 | 亚洲人成影院午夜网站| 亚洲精品老司机在线观看| 成人午夜免费福利视频| 中文字幕无码免费久久| 成人免费夜片在线观看| 亚洲性无码AV中文字幕| 亚洲视频一区在线观看| 亚洲精品乱码久久久久久| 亚洲AV无码成H人在线观看| 无码一区二区三区免费视频| 无码一区二区三区免费| av午夜福利一片免费看久久| 亚洲av无码专区亚洲av不卡 | 午夜福利不卡片在线播放免费| a级黄色毛片免费播放视频| 猫咪免费人成在线网站| 亚洲熟妇自偷自拍另欧美| 亚洲乱码卡三乱码新区| 亚洲最大的成网4438| 国产成人亚洲综合色影视| 亚洲乱码国产一区网址| 免费成人av电影| 免费观看午夜在线欧差毛片 | 国产精品亚洲AV三区| 亚洲中文无码mv| 亚洲日本乱码卡2卡3卡新区| 亚洲女人影院想要爱| 亚洲精品成人久久| 亚洲精品美女在线观看播放| 亚洲久本草在线中文字幕| 亚洲国产精品无码AAA片| 亚洲精品无码MV在线观看| 国产综合亚洲专区在线| 中文字幕精品亚洲无线码二区| 亚洲人成网站18禁止一区| 久久精品国产精品亚洲| 在线精品亚洲一区二区小说| 国产v亚洲v天堂无码网站| 久久久亚洲精品国产|