1 环境准备
下载wtp-all-in-on
下载jakarta-tomcat-5.0.30
下载axis-src-1_4.zip
2 环境配置
配置tomcat关联到你的eclipse中
将axis-1_4\webapps\axis\WEB-INF\lib中的文件复制到$TOMCATHOME$\common\lib中
3 开发、发布websevice
新建一个动态web project名为eclipse4WS
添加Axis的lib下的jar包到工程中
改变class文件的输出路径为
在src下编写一个简单的java类作为webservice
package service;
public class HelloService {
public String sayHello(String username) {
return "Hello: " + username;
}
}
发布该类为webservice
在向导中调整如下选项,尤其是选择到test service,点击
next
选择供访问的方法sayHello,点击next
一路点击next,直到出现start server按钮,点击运行tomcat,然后点击Finish按钮完成发布。
点击webservice Explore中的Operations中的sayHello方法
在username中输入测试数据:little gril,点击Go
在status栏中出现访问该service的返回值:Hello: little girl,表示service已经发布成功并且可以访问
4 编写并运行客户端程序
l 手动编写
在src目录下建立如下java类:
public class HelloClient {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String username = "guest";
if (args.length != 0) {
username = args[0];
}
//WebService的Location,在上图中可以找到,也可以在wsdl文件中找到。
String endpoint ="http://localhost:8080/eclipse4WS/services/HelloService";
Service service = new Service();
try {
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
//要访问的method
call.setOperationName(new QName("urn:HelloService","sayHello"));
//传参
String returnValue = (String) call
.invoke(new Object[] { username });
System.out.println(returnValue);
catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
l 你也可以运用wtp插件来生成一个客户端proxy
(1) 在向导的client部分,选择slider至
install client,然后按照默认一路next,直到Finish。这样eclipse就为你创建了一个client工程eclipse4WSClient
(2) 打开这个工程的src下的service目录,你可以看到一个HelloServiceProxy类,这就是自动创建好的代理类,该类中封装好了要访问的HelloService的endpoint以及发布的方法及参数类型、返回值,你只需要编写一个测试类实例化这个proxy类,并调用你想访问的webservice的方法就可以了。如:
public class HelloClient {
public static void main(String[] args) throwsRemoteException, MalformedURLException {
HelloServiceProxy proxy = new HelloServiceProxy();
System.out.println(proxy.sayHello("zhii"));
}
l 运行HelloClient as Java Allication,你就可以看到控制台的返回信息了。