love fish大鵬一曰同風起,扶搖直上九萬里

          常用鏈接

          統計

          積分與排名

          friends

          link

          最新評論

          AXIS學習(1)(轉)

          1.axis服務器包的校驗。
            到http://ws.apache.org/下載axis后,解壓,拷貝axis到tomcat的webapps目錄下。啟動tomcat,運行http://localhost:8080/axis
            點擊“validation”,程序會檢測少的包,并提示下載路徑。我目前包含的包如下:
              axis.jar;                              
           axis-ant.jar;                          
           axis-schema.jar;                       
           commons-discovery-0.2.jar;             
           commons-httpclient-3.0-rc2.jar;        
           commons-logging-1.0.4.jar;             
           jaxrpc.jar;                            
           log4j-1.2.8.jar;                       
           saaj.jar;                              
           wsdl4j-1.5.1.jar;                      
           activation.jar;                        
           mail.jar    

          2.環境變量的配置
            其實運行axis是不用配置環境變量的。但有的時候需要利用axis提供的一些工具,產生一些文件,需要應用很多包,利用ClassPath就比較方便了。
            AXIS_HOME:
            AXIS_LIB:
            AXISCLASSPATH:
           
          3.把axis集成 到項目中
            a、把上面所提到的包拷貝到項目相應的lib目錄中
            b、修改web.xml文件,增加所需的servlet配置
            <servlet>
            <servlet-name>AxisServlet</servlet-name>
            <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
           </servlet>

           <servlet>
            <servlet-name>AdminServlet</servlet-name>
            <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
            <load-on-startup>100</load-on-startup>
           </servlet>

           <servlet>
            <servlet-name>SOAPMonitorService</servlet-name>
            <servlet-class>org.apache.axis.monitor.SOAPMonitorService</servlet-class>
            <init-param>
             <param-name>SOAPMonitorPort</param-name>
             <param-value>5001</param-value>
            </init-param>
            <load-on-startup>100</load-on-startup>
           </servlet>

           <servlet-mapping>
            <servlet-name>AxisServlet</servlet-name>
            <url-pattern>/servlet/AxisServlet</url-pattern>
           </servlet-mapping>

           <servlet-mapping>
            <servlet-name>AxisServlet</servlet-name>
            <url-pattern>*.jws</url-pattern>
           </servlet-mapping>

           <servlet-mapping>
            <servlet-name>AxisServlet</servlet-name>
            <url-pattern>/services/*</url-pattern>
           </servlet-mapping>

           <servlet-mapping>
            <servlet-name>SOAPMonitorService</servlet-name>
            <url-pattern>/SOAPMonitor</url-pattern>
           </servlet-mapping>

           <session-config>
            <session-timeout>5</session-timeout>
           </session-config>

           <mime-mapping>
            <extension>wsdl</extension>
            <mime-type>text/xml</mime-type>
           </mime-mapping>

           <mime-mapping>
            <extension>xsd</extension>
            <mime-type>text/xml</mime-type>
           </mime-mapping>
            
          4.服務發布(jws文件發布和定制發布)
            a、jws文件發布
            在web應用程序目錄下,新建一個jws文件,例如:Hello.jws文件(其實就是個java文件,不包含包名)。 
            public class Hello {
           public String hello(String name){
            if(name==null){
             name="";
            }
            return "Hi,你好 "+name+",歡迎來到Web服務世界!";
           }
            }
            這樣就可以直接查看hello服務相應的wsdl了:http://localhost:8080/testaxis/hello.jws?wsdl
           
            b.定制發布。
            定制發布,依賴一個server-confif.wsdd文件。
            在web-inf目錄下新建一個deploy.wsdd文件,設置發布的服務,例如:
            <deployment xmlns="http://xml.apache.org/axis/wsdd/"
                      xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
              <service name="city" provider="java:RPC">
                <parameter name="className" value="yhp.test.axis.service.CityService"/>
                <parameter name="allowedMethods" value="*"/>
              </service>
            </deployment>
           
            利用axis提供的工具,就可以生成server-confif.wsdd文件了:
            java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd
            在運行過程中發現:如果沒有把axis自帶的應用發布到服務器上,運行時會提示404的錯誤,未發現axis/servlet/AxisServlet。

          5.客戶端調用
                  String endpoint = "http://localhost:" + "8080"
              + "/testaxis/services/city";  //以定制發布方式,如果是jws文件,則endpoint為相應的jws文件

            Service service = new Service();
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(new java.net.URL(endpoint));
            call.setOperationName("getZip");

            String res = (String) call.invoke(new Object[] {""});//object數組為遠程方法的參數 

            System.out.println(res);
            
          6.生成客戶端stub相關類
             Axis提供了工具生成客戶端stub相關的類,即通過wsdl產生stub。
             java -cp %AXISCLASSPATH% org.apache.axis.wsdl.WSDL2Java http://localhost:8080/testaxis/services/city?wsdl

          posted on 2006-05-23 17:05 liaojiyong 閱讀(330) 評論(0)  編輯  收藏 所屬分類: Mixture

          主站蜘蛛池模板: 通化市| 靖宇县| 阳城县| 新安县| 淮北市| 基隆市| 巧家县| 内江市| 无锡市| 钟祥市| 澄城县| 南昌市| 南部县| 宣威市| 西吉县| 桓仁| 麦盖提县| 原平市| 涿州市| 曲周县| 博客| 房山区| 丁青县| 大姚县| 兴宁市| 武平县| 达拉特旗| 北辰区| 璧山县| 登封市| 鞍山市| 贵定县| 鱼台县| 东宁县| 林周县| 互助| 团风县| 株洲县| 黄大仙区| 长子县| 霍山县|