隨筆-75  評(píng)論-193  文章-5  trackbacks-0

          這個(gè)事情去年做過(guò)一次,不過(guò)沒(méi)有留下記錄,今天又要做一次,記錄下來(lái),呵呵

          環(huán)境:

          Spring版本為1.2,Tomcat為5.5.26,JDK為Jdk1.5.0_11。

          1、下載Axis1.4,解壓后將其jar文件添加到web項(xiàng)目的lib目錄中。

          2、配置Axis Servlet,在web.xml文件中加入如下信息:

          <servlet>
             
          <servlet-name>AxisServlet</servlet-name>
             
          <servlet-class>
                  org.apache.axis.transport.http.AxisServlet
             
          </servlet-class>
          </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>

           
          3、編寫(xiě)java類(lèi),樣例如下。

          接口:

          public interface InterchangeDataService {
             
          public String getMonthInterchange(String marketDate);
          }

          實(shí)現(xiàn)類(lèi):

          public class InterchangeDataServiceImpl extends ServletEndpointSupport implements InterchangeDataService {

             
          public InterchangeDataServiceImpl() {
              }

             
          public String getMonthInterchange(String marketDate) {
                  
          return "getMonthInterchange";
              }

          }

          注意實(shí)現(xiàn)類(lèi)需要繼承ServletEndpointSupport類(lèi),該類(lèi)是由Spring提供的。


          4、配置service-config.wsdd。

          <?xml version="1.0" encoding="utf-8"?>
          <deployment xmlns="http://xml.apache.org/axis/wsdd/"
              xmlns:java
          ="http://xml.apache.org/axis/wsdd/providers/java">
             
          <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
             
          <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
             
          <service name="interchangeDataService" provider="java:RPC" style="rpc" use="literal">
                 
          <parameter name="wsdlTargetNamespace" value="urn:soap.axisspring"/>
                 
          <parameter name="className" value="com.ecgit.eccm.webservice.InterchangeDataServiceImpl"/>
                 
          <parameter name="allowedMethods" value="*"/>
             
          </service>
             
          <transport name="http">
                 
          <requestFlow>
                     
          <handler type="URLMapper"/>
                     
          <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
                 
          </requestFlow>
                 
          <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
                 
          <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
                 
          <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
             
          </transport>
             
          <transport name="local">
                 
          <responseFlow>
                     
          <handler type="LocalResponder"/>
                 
          </responseFlow>
             
          </transport>
          </deployment>

           
          5、測(cè)試web service服務(wù),代碼如下。

          至項(xiàng)目的WEB-INF目錄下,執(zhí)行如下命令:

          Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/services/interchangeDataService?WSDL

          會(huì)在WEB-INF目錄中生成四個(gè)JAVA文件,它們分別是:

          • InterchangeDataServiceImpl.java   定義了Web服務(wù)接口,接口中的方法與InterchangeDataService中的方法一致。
          • InterchangeDataServiceImplService.java 定義了用于獲取Web服務(wù)接口的方法。
          • InterchangeDataServiceImplServiceLocator.java 接口InterchangeDataServiceImplService的具體實(shí)現(xiàn)。
          • InterchangeDataServiceImplSoapBindingStub.java Web服務(wù)客戶(hù)端樁,通過(guò)該類(lèi)與服務(wù)器交互。

          最后編寫(xiě)一個(gè)Main方法,調(diào)用如下方法即可進(jìn)行測(cè)試:

          InterchangeDataServiceImplServiceLocator serviceLocator = new InterchangeDataServiceImplServiceLocator();
          InterchangeDataServiceImpl service
          = serviceLocator.getinterchangeDataService();
          String monthSchedule
          = service.getMonthInterchange("2008-05-30");
          posted on 2008-12-19 17:16 The Matrix 閱讀(3433) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): Java

          評(píng)論:
          # re: 使用Axis1.4、Spring在tomcat環(huán)境下提供web service服務(wù)[未登錄](méi) 2008-12-20 13:08 | zxbyh
          不錯(cuò)!!  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 乐山市| 敦煌市| 色达县| 黄山市| 河池市| 双流县| 镇康县| 舒城县| 温宿县| 渑池县| 温州市| 城固县| 宜兴市| 阆中市| 新巴尔虎左旗| 治县。| 新沂市| 武夷山市| 弥渡县| 彰化县| 九龙城区| 九江县| 永丰县| 恩平市| 金堂县| 波密县| 曲麻莱县| 盖州市| 桃园县| 玉屏| 元谋县| 通城县| 桐庐县| 深泽县| 旺苍县| 肃南| 金门县| 泸定县| 文水县| 韶山市| 金平|