love fish大鵬一曰同風(fēng)起,扶搖直上九萬里

          導(dǎo)航

          <2006年5月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          公告

          留言簿(15)

          隨筆分類(493)

          隨筆檔案(498)

          相冊

          閱讀排行榜

          常用鏈接

          統(tǒng)計(jì)

          積分與排名

          friends

          link

          最新評(píng)論

          AXIS學(xué)習(xí)(1)(轉(zhuǎn))

          1.axis服務(wù)器包的校驗(yàn)。
            到http://ws.apache.org/下載axis后,解壓,拷貝axis到tomcat的webapps目錄下。啟動(dòng)tomcat,運(yùn)行http://localhost:8080/axis
            點(diǎn)擊“validation”,程序會(huì)檢測少的包,并提示下載路徑。我目前包含的包如下:
              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.環(huán)境變量的配置
            其實(shí)運(yùn)行axis是不用配置環(huán)境變量的。但有的時(shí)候需要利用axis提供的一些工具,產(chǎn)生一些文件,需要應(yīng)用很多包,利用ClassPath就比較方便了。
            AXIS_HOME:
            AXIS_LIB:
            AXISCLASSPATH:
           
          3.把a(bǔ)xis集成 到項(xiàng)目中
            a、把上面所提到的包拷貝到項(xiàng)目相應(yīng)的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.服務(wù)發(fā)布(jws文件發(fā)布和定制發(fā)布)
            a、jws文件發(fā)布
            在web應(yīng)用程序目錄下,新建一個(gè)jws文件,例如:Hello.jws文件(其實(shí)就是個(gè)java文件,不包含包名)。 
            public class Hello {
           public String hello(String name){
            if(name==null){
             name="";
            }
            return "Hi,你好 "+name+",歡迎來到Web服務(wù)世界!";
           }
            }
            這樣就可以直接查看hello服務(wù)相應(yīng)的wsdl了:http://localhost:8080/testaxis/hello.jws?wsdl
           
            b.定制發(fā)布。
            定制發(fā)布,依賴一個(gè)server-confif.wsdd文件。
            在web-inf目錄下新建一個(gè)deploy.wsdd文件,設(shè)置發(fā)布的服務(wù),例如:
            <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
            在運(yùn)行過程中發(fā)現(xiàn):如果沒有把a(bǔ)xis自帶的應(yīng)用發(fā)布到服務(wù)器上,運(yùn)行時(shí)會(huì)提示404的錯(cuò)誤,未發(fā)現(xiàn)axis/servlet/AxisServlet。

          5.客戶端調(diào)用
                  String endpoint = "http://localhost:" + "8080"
              + "/testaxis/services/city";  //以定制發(fā)布方式,如果是jws文件,則endpoint為相應(yīng)的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數(shù)組為遠(yuǎn)程方法的參數(shù) 

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

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

          主站蜘蛛池模板: 青田县| 大名县| 乐东| 青州市| 奉新县| 海淀区| 大竹县| 屯留县| 罗源县| 邻水| 安多县| 南昌县| 泗水县| 甘谷县| 北京市| 衡水市| 鄂托克旗| 广安市| 云浮市| 长宁县| 鹤山市| 邹平县| 祁门县| 祁连县| 冕宁县| 揭西县| 西乌珠穆沁旗| 安吉县| 萨迦县| 克东县| 崇信县| 铁力市| 衡东县| 临江市| 北碚区| 赫章县| 师宗县| 马龙县| 边坝县| 越西县| 防城港市|