第一步:
下载axis1.4,解压后把以下jar包
axis.jar
axis-ant.jar
commons-discovery-0.2.jar
commons-logging-1.0.4.jar
jaxrpc.jar
log4j-1.2.8.jar
saaj.jar
wsdl4j-1.5.1.jar
放到工程的lib目录下,导入到工程里面。
第二步:
web.xml文件配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
? <display-name>webservice</display-name>
? <welcome-file-list>
??? <welcome-file>index.html</welcome-file>
??? <welcome-file>index.htm</welcome-file>
??? <welcome-file>index.jsp</welcome-file>
??? <welcome-file>default.html</welcome-file>
??? <welcome-file>default.htm</welcome-file>
??? <welcome-file>default.jsp</welcome-file>
? </welcome-file-list>
?
?? <servlet>?
??? <servlet-name>axis</servlet-name>?
??? <servlet-class>?
??????? org.apache.axis.transport.http.AxisServlet?
??? </servlet-class>?
??? <load-on-startup>2</load-on-startup>?
</servlet>?
<servlet-mapping>?
??? <servlet-name>axis</servlet-name>?
??? <url-pattern>/services/*</url-pattern>?
</servlet-mapping>??
</web-app>
第三步:
在WEB-INF文件夹下建文件server-config.wsdd,文件内容为
<deployment xmlns="http://xml.apache.org/axis/wsdd/"?
?????? xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">?
?????? <handler name="URLMapper"?
????????????? type="java:org.apache.axis.handlers.http.URLMapper" />????
?????? <!-- 系统服务 -->?
?????? <service name="AdminService" provider="java:MSG">?
????????????? <parameter name="allowedMethods" value="AdminService" />?
????????????? <parameter name="enableRemoteAdmin" value="false" />?
????????????? <parameter name="className" value="org.apache.axis.utils.Admin" />?
????????????? <namespace>http://xml.apache.org/axis/wsdd/</namespace>?
?????? </service>?
?
?????? <service name="Version" provider="java:RPC">?
????????????? <parameter name="allowedMethods" value="getVersion" />?
????????????? <parameter name="className" value="org.apache.axis.Version" />?
?????? </service>???
???????????
?????? <service name="TestService" provider="java:RPC">?
????????????? <parameter name="className" value="com.service.TestService" />?
????????????? <parameter name="allowedMethods" value="*" />?
?????? </service>?
????????
?????? <transport name="http">?
??????????? <requestFlow>?
??????????????? <handler type="URLMapper" />?
??????????? </requestFlow>?
?????? </transport>?
?
</deployment>?
第四步:
服务端开发:
package com.service;
public class TestService {
?public String hello(String name) {
??System.out.println("server -->hello " + name);
??return "hello " + name;
?}
}
第五步:
客户端开发:
package com.client;
?
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class TestClient {
?/**
? * @param args
? */
?public static void main(String[] args) throws Exception{
??String wsdlUrl = "http://localhost:8080/webservice/services/TestService?wsdl";
??String namespaceUri = "com.service";
??Service service = new Service();
??Call call = (Call)service.createCall();
??call.setTargetEndpointAddress(wsdlUrl);
??call.setOperationName(new QName(namespaceUri,"hello"));
??String result = (String)call.invoke(new Object[]{"ppt"});
??System.out.println("client: ->" + result);
?}
}