一 下载webservice使用的jar包
可以去官(http://ws.Apache.org/axis/)网下,或者到csnd我上传的资源(http://download.csdn.net/detail/luwei19881121/6834603)里面下载。
二 在myeclipse里面建立一个web工程
我建的工程名为axis。然后将一中的jar包放到工程的lib目录下。
三 在工程的WEB-INF目录下建立server-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">
<globalConfiguration>
<parameter name="sendMultiRefs" value="true"/>
<parameter name="disablePrettyXML" value="true"/>
<parameter name="dotNetSoapEncFix" value="true"/>
<parameter name="enableNamespacePrefixOptimization" value="false"/>
<parameter name="sendXMLDeclaration" value="true"/>
<parameter name="sendXsiTypes" value="true"/>
<parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
</globalConfiguration>
<handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>
<service name="lu.jws" provider="java:RPC"> //此处的‘lu.jws’就是service的名字,可以随便取
<parameter name="className" value="com.server.MyServer"/> //此处的‘com.server.MyServer’就是你的服务端的类,见下面的步骤
<parameter name="scope" value="request"/>
<parameter name="allowedMethods" value="*"/> //此处的‘*’代表允许调用服务端类‘com.server.MyServer’的所有方法
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
</requestFlow>
</transport>
</deployment>
四 编写服务端类,具体代码如下:
package com.server;
public class MyServer {
public String sayHello(String word){
//这里可以打印出客户端传过来的信息--word。
//*********** 这里可以写你服务端的各种操作处理
return "server say hello!";//此为服务端返回的信息
}
}
五 编写客户端类,具体代码如下:
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class MyClient {
public static void main(String[] args) throws Exception {
// 指出service所在URL,注意后面的service名称要和server-config.wsdd中的一致‘lu.jws’
String endpoint = "http://localhost:8080/axis/services/lu.jws";
// 创建一个服务(service)调用(call)
Service service = new Service();
Call call = (Call) service.createCall();// 通过service创建call对象
// 设置service所在URL
call.setTargetEndpointAddress(new java.net.URL(endpoint));
// 方法名(opname)要与MyServer.java你要调用的方法名保持一致,这里调用的是sayHello
call.setOperationName("sayHello");
String ret = (String) call.invoke(new Object[] { "client say hello!" });
System.out.println(ret);//输出的信息即为sayHello方法返回的信息
}
}
六 配置WEB-INF下的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>/services/*</url-pattern>
</servlet-mapping>
七 将你的应用部署到服务器(比如tomcat)上,然后运行服务器,再运行你客户端中的main方法,就出打印出服务端返回的信息了,具体工程的目录结构和输出消息见下图:
八 客户端和服务端传输大量数据时,可使用拼接xml格式文件的方式进行。