拾貝殼

          走過的路
          隨筆 - 39, 文章 - 1, 評論 - 14, 引用 - 0
          數據加載中……

          axis userguide(2)

          發布service
          有2種發布方式,一種是實例發布,一種是描述符發布
          實例發布很簡單
            把我們的java源文件拷貝到axis目錄下,改擴展名為jws
            然后就可以直接訪問了,例如:
          java samples.userguide.example2.CalcClient -p8080 add 2 5
           他將調用add方法,傳遞的2個變量分別為2和5。
          很顯然,第一種方法有很多弊端,比如需要源文件,不能有包路徑等等
          描述符發布
          一個最簡單的例子如下:
          <deployment xmlns="http://xml.apache.org/axis/wsdd/"
              xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
            <service name="MyService" provider="java:RPC">
              <parameter name="className" value="samples.userguide.example3.MyService"/>
              <parameter name="allowedMethods" value="*"/>
            </service>
          </deployment>
          一個服務是一個targeted chain ,可能包含下面的一些或者全部:請求Handler,pivot Handler 支點Handler,響應Handler。支點hander在服務中叫做provider,在例子中我們的provider是java:RPC,他被axis內嵌,代表了Java RPC service,具體的類是org.apache.axis.providers.java.RPCProvider.
          我們告訴RPCProvider 我們要調用的服務MyService,并以參數的形式告訴他具體的目標以及可以被調用的方法。
          我們也可以給我們要調用的對象設置作用范圍scope,和servlet的scope一樣,有request,session,application.
          我們需要把這個描述符定義的內容告訴應用服務器才能真正提供我們需要的服務。
          如果已經部署axis到tomcat,我們可以這樣發布
          org.apache.axis.client.AdminClient deploy.wsdd
          這樣我們的服務就可以通過soap來訪問了
          測試一下
          java samples.userguide.example3.Client
            -lhttp://localhost:8080/axis/services/MyService "test me!"
          可以通過下面來查看所有已經部署的服務
          java org.apache.axis.client.AdminClient list
          來看看更進一步的應用,使用一下request handler
          <deployment xmlns="http://xml.apache.org/axis/wsdd/"
              xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
            <!-- define the logging handler configuration -->
            <handler name="track" type="java:samples.userguide.example4.LogHandler">
              <parameter name="filename" value="MyService.log"/>
             </handler>

            <!-- define the service, using the log handler we just defined -->
            <service name="LogTestService" provider="java:RPC">
              <requestFlow>
                <handler type="track"/>
              </requestFlow>

              <parameter name="className" value="samples.userguide.example4.Service"/>
              <parameter name="allowedMethods" value="*"/>
            </service>
          </deployment>
          這個例子會在客戶端掉用LogTestService的時候,先調用samples.userguide.example4.LogHandler作記錄操作
          遠程管理
          默認狀態下,axis只允許在axis部署的機器上使用管理請求,如果希望在其他的機器上進行管理操作可以參照下面的例子

          <service name="AdminService" provider="java:MSG">
            <parameter name="className" value="org.apache.axis.util.Admin"/>
            <parameter name="allowedMethods" value="*"/>
            <parameter name="enableRemoteAdmin" value="true"/>
          </service>
          注意,這樣配置需要作必要的安全配置

          posted on 2008-02-17 12:17 binge 閱讀(614) 評論(0)  編輯  收藏 所屬分類: J2EEOPEN SOURCE

          主站蜘蛛池模板: 郁南县| 铜山县| 贵定县| 上饶市| 凤山市| 息烽县| 大埔县| 宾阳县| 万源市| 合山市| 本溪| 同心县| 延庆县| 阿瓦提县| 朔州市| 乌恰县| 久治县| 洪雅县| 雷州市| 翁牛特旗| 娱乐| 乌鲁木齐市| 信丰县| 桐庐县| 浦东新区| 禄劝| 嘉祥县| 博乐市| 塔河县| 鄯善县| 阳谷县| 泾阳县| 嵊州市| 蕲春县| 武清区| 大庆市| 枝江市| 孝昌县| 南雄市| 宜城市| 苍山县|