1。环境准备
下载wtp-all-in-one-sdk-R-1.5.4-win32,这个是eclipse的web开发插件
下载jakarta-tomcat-5.0.30
下载axis-src-1_4.zip
2。新建一个动态web工程(dynamic web project),命名为eclipse4WS。
把axis-src-1_4.zip中axis1.4\axis-bin-1_4\axis-1_4\webapps\axis\WEB-INF\lib下的jar文件加载到项目中。
改变class文件的输出路径为WebContent/WEB-INF/classes
至此,环境准备OK。
3。写服务端代码。
package service;
public class HelloService {
public String sayHello(String name){
System.out.println("request once");
return "Hello " + name;
}
}
4。发布该类为webservice:
在package explorer中的项目树中,选中HelloService.java,右键点击---Web Services---create Web service---next---next---start server。
完成之后,webcontent会自动生成一个文件wsdl文件夹、WEB-INF下会生成server-config.wsdd,HelloServiceService目录文件。
至此服务端部署成功。
选择供访问的方法sayHello,点击next
点击webservice Explore中的Operations中的sayHello方法
在username中输入测试数据:little girl,点击Go
在status栏中出现访问该service的返回值:Hello: little girl,表示service已经发布成功并且可以访问
5。新建客户端程序测试Client.java
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Service;
import org.apache.axis.client.Call;
public class HelloClient {
public static void main(String[] args) {
String name="girl";
String endPoint="http://localhost:8080/eclipse4WS/services/HelloService";
Service service = new Service();
try {
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new URL(endPoint));
call.setOperationName(new QName("urn:HelloService", "sayHello"));
String returnValue = (String)call.invoke(new Object[]{name});
System.out.println(returnValue);
} catch (ServiceException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
6.运行Client.java,如果客户端程序打印出Hello girl,服务端打印出request noce,则运行成功。