隨筆-75  評論-193  文章-5  trackbacks-0

          這個事情去年做過一次,不過沒有留下記錄,今天又要做一次,記錄下來,呵呵

          環境:

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

          1、下載Axis1.4,解壓后將其jar文件添加到web項目的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、編寫java類,樣例如下。

          接口:

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

          實現類:

          public class InterchangeDataServiceImpl extends ServletEndpointSupport implements InterchangeDataService {

             
          public InterchangeDataServiceImpl() {
              }

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

          }

          注意實現類需要繼承ServletEndpointSupport類,該類是由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、測試web service服務,代碼如下。

          至項目的WEB-INF目錄下,執行如下命令:

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

          會在WEB-INF目錄中生成四個JAVA文件,它們分別是:

          • InterchangeDataServiceImpl.java   定義了Web服務接口,接口中的方法與InterchangeDataService中的方法一致。
          • InterchangeDataServiceImplService.java 定義了用于獲取Web服務接口的方法。
          • InterchangeDataServiceImplServiceLocator.java 接口InterchangeDataServiceImplService的具體實現。
          • InterchangeDataServiceImplSoapBindingStub.java Web服務客戶端樁,通過該類與服務器交互。

          最后編寫一個Main方法,調用如下方法即可進行測試:

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

          評論:
          # re: 使用Axis1.4、Spring在tomcat環境下提供web service服務[未登錄] 2008-12-20 13:08 | zxbyh
          不錯!!  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 龙山县| 宕昌县| 梓潼县| 达拉特旗| 潞城市| 平南县| 桃园市| 图们市| 汽车| 太和县| 安义县| 当阳市| 冕宁县| 金川县| 衡阳县| 台山市| 崇义县| 北安市| 台安县| 廊坊市| 子长县| 阿坝| 琼结县| 宜丰县| 商洛市| 鄱阳县| 浪卡子县| 武平县| 梁河县| 宝山区| 治县。| 城步| 凌云县| 甘肃省| 孙吴县| 肥城市| 郓城县| 筠连县| 昆明市| 浪卡子县| 洛川县|