˜q™ä¸ªäº‹æƒ…åŽÕd¹´åšè¿‡ä¸€‹Æ¡ï¼Œä¸è¿‡æ²¡æœ‰ç•™ä¸‹è®°å½•åQŒä»Šå¤©åˆè¦åšä¸€‹Æ¡ï¼Œè®°å½•下æ¥åQŒå‘µå‘?/p> 环境åQ?/p>
Spring版本ä¸?.2åQŒTomcatä¸?.5.26åQŒJDK为Jdk1.5.0_11ã€?/p>
1ã€ä¸‹è½½Axis1.4åQŒè§£åŽ‹åŽž®†å…¶jaræ–‡äšgæ·ÕdŠ åˆ°web™å¹ç›®çš„lib目录ä¸ã€?/p>
2ã€é…¾|®Axis ServletåQŒåœ¨web.xmlæ–‡äšgä¸åŠ å…¥å¦‚ä¸‹ä¿¡æ¯ï¼š
<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¾c»ï¼Œæ ·ä¾‹å¦‚下ã€?/p>
接å£åQ?/p>
public interface InterchangeDataService {
public String getMonthInterchange(String marketDate);
}
实现¾c»ï¼š
public class InterchangeDataServiceImpl extends ServletEndpointSupport implements InterchangeDataService {
public InterchangeDataServiceImpl() {
}
public String getMonthInterchange(String marketDate) {
return "getMonthInterchange";
}
}
注æ„实现¾c»éœ€è¦ç‘ô承ServletEndpointSupport¾c»ï¼Œè¯¥ç±»æ˜¯ç”±Springæä¾›çš„ã€?
4ã€é…¾|®service-config.wsddã€?/p>
<?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æœåŠ¡åQŒä»£ç 如下ã€?/p>
至项目的WEB-INF目录下,执行如下命ä×oåQ?/p>
Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/services/interchangeDataService?WSDL
会在WEB-INF目录ä¸ç”Ÿæˆå››ä¸ªJAVAæ–‡äšgåQŒå®ƒä»¬åˆ†åˆ«æ˜¯åQ?
- InterchangeDataServiceImpl.java 定义了WebæœåŠ¡æŽ¥å£åQŒæŽ¥å£ä¸çš„æ–¹æ³•与InterchangeDataServiceä¸çš„æ–ÒŽ³•一致ã€?
- InterchangeDataServiceImplService.java 定义了用于获å–WebæœåŠ¡æŽ¥å£çš„æ–¹æ³•ã€?
- InterchangeDataServiceImplServiceLocator.java 接å£InterchangeDataServiceImplService的具体实现ã€?
- InterchangeDataServiceImplSoapBindingStub.java WebæœåŠ¡å®¢æˆ·ç«¯æ¡©åQŒé€šè¿‡è¯¥ç±»ä¸ŽæœåŠ¡å™¨äº¤äº’ã€?
最åŽç¼–写一个Mainæ–ÒŽ³•åQŒè°ƒç”¨å¦‚下方法å³å¯è¿›è¡Œæµ‹è¯•:
InterchangeDataServiceImplServiceLocator serviceLocator = new InterchangeDataServiceImplServiceLocator();
InterchangeDataServiceImpl service = serviceLocator.getinterchangeDataService();
String monthSchedule = service.getMonthInterchange("2008-05-30");

]]>