随笔-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