Terry.Li-彬

          虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業(yè)。

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
          我比較懶惰,不想把user guide全部翻譯,就記錄一些點吧。
            
            Axis2是全新設(shè)計的,在2004年的“Axis峰會”上,大家決定采用新的架構(gòu)來讓Axis更加的富有彈性,更有效率,并且更加的可配置。Axis2現(xiàn)在具有的一些feature:
            Speed
            Low memory foot print
            AXIOM - AXis Object Model
            Hot Deployment
            Asynchronous Web Services
            MEP Support - Message Exchange Patterns
            Flexibility
            Stability
            Component-oriented deployment
            Transport framework
            WSDL support
            
            有些feature現(xiàn)在看不懂,還是先動手做一下,感性認識一下吧
            
            第一步:下載AXIS2。http://ws.apache.org/axis2/download.cgi。很有趣,在apache的Web Service 的Project目錄下面還看不到AXIS2。要下那個binary的版本,因為里面有例程。
            
            第二步:Copy axis2.war到$TOMCAT_HOME/webapps目錄下面。Tomcat好像只能用JDK1.4,我在JDK1.5 用不出來。
            
            第三步:打開 http://localhost:8080/axis2,就可以看到axis2的Welcome頁面了。點一下Validate 和Services,看是不是都沒有錯誤。都沒有錯誤的話,就表示deploy成功了。那個adminstration頁面可以通過上傳文件來hot deploy Web service,可以用來remote deploy。
            
            第四步:研究例程。先從"samples/userguide/src"目錄下的例程看起。看到寫一個web service很簡單嘛:
            
            public class MyService {
            public OMElement echo(OMElement element) throws XMLStreamException {
            //Praparing the OMElement so that it can be attached to another OM Tree.
            //First the OMElement should be completely build in case it is not fully built and still
            //some of the xml is in the stream.
            element.build();
            //Secondly the OMElement should be detached from the current OMTree so that it can be attached
            //some other OM Tree. Once detached the OmTree will remove its connections to this OMElement.
            element.detach();
            return element;
            }
            
            public void ping(OMElement element) throws XMLStreamException {
            //Do some processing
            }
            public void pingF(OMElement element) throws AxisFault{
            throw new AxisFault("Fault being thrown");
            }
            }
            
            看得出來,函數(shù)統(tǒng)一使用OMElement作為參數(shù)。在META-INF目錄下面有個services.xml文件:
            <service name="MyService">
            <description>
            This is a sample Web Service with two operations,echo and ping.
            </description>
            <parameter name="ServiceClass" locked="false">userguide.example1.MyService</parameter>
            <operation name="echo">
            <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
            </operation>
            <operation name="ping">
            <messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
            </operation>
            </service>
            呵呵,也很簡單嘛。有返回值的就用RawXMLINOutMessageReceiver,沒返回值的就用RawXMLINOnlyMessageReceiver。把它們編譯(要把axis2的jar寫到classpath里去)打包壓到 MyService.aar,包里文件目錄如下:
            ./\META-INF/services.xml
            ./userguide/example1/MyService.class
            把MyService.aar拷貝到$TOMCAT_HOME/webapps/axis2/WEB-INF/services,然后去點一下http://localhost:8080/axis2頁面上的Services,也就是http://localhost:8080/axis2/listServices.jsp,就可以看到MyService已經(jīng)被列出來了。
            
            關(guān)于調(diào)用web service的東西蠻多,下次寫吧。
          posted on 2007-11-21 18:07 禮物 閱讀(419) 評論(0)  編輯  收藏 所屬分類: web service
          主站蜘蛛池模板: 衡阳市| 南江县| 宿松县| 佛山市| 施秉县| 德州市| 沿河| 安西县| 永川市| 黔西| 济宁市| 永福县| 射阳县| 夏津县| 田东县| 永顺县| 石棉县| 平罗县| 长宁县| 南华县| 张家口市| 崇义县| 濉溪县| 平罗县| 彝良县| 衡东县| 萝北县| 德令哈市| 安岳县| 侯马市| 中宁县| 邵武市| 陇川县| 达拉特旗| 江都市| 梧州市| 黎城县| 琼海市| 若尔盖县| 桐城市| 霞浦县|