创建WebServer服务端:
开发工具:eclipse 环境:jdk1.6.22以上版本
1.使用eclipse创建一个java项目,创建一个类 Server
并在类上添加@webServer注解
代码如下:
@WebService //必须是javax.jws.WebService;
public class Service {
public static void main(String[] args) {
/**
* 参数1:发布地址
* 参数2:服务器的实现者
*/
Endpoint.publish("http://192.168.11.42:5123/translated", new Service()); //javax.xml.ws.Endpoint
}
public String sayChinese(String str){
if("Hello".equalsIgnoreCase(str.trim())){
return str+">翻译为汉语是:> 你好!";
}else if("Hello world".equalsIgnoreCase(str.trim())){
return str+">翻译为汉语是:> 你好 世界!";
}
return str+">翻译失败";
}
public String sayEnglish(String str){
if("你好".equals(str.trim())){
return str+">translated into English is :> Hello";
}else{
return str+"translated failed!";
}
}
}
webServer 发布的类中至少包含一个不是 static 或 final 修饰的方法 否则发布不成功!
如果在发布的类中不希望某个方法被发布出去可以在该方法上使用注解:@WebMethod(exclude=true)
测试WebServer是否发布成功
在浏览器地址栏中输入:http://192.168.11.42:5123/translated?WSDL 如果页面显示出xml数据则发布成功!
客户端访问远程WebServer上的方法:
新建一个java项目然后
在eclipse中点击File>New>Other>WebService>选择Web Service Client 点击next>在Server definition 中输入http://192.168.11.42:5123/translated?WSDL 点击 next 选择生成代码的存放位置 点击 Finish 完成。
或者 使用 CMD命令框 >wsimport -s . http://192.168.11.42:5123/translated?WSDL 回车(-s生成源码 . 存放到当前位置) 将生成的代码copy到client项目下。
在client项目中的包下建个Test类代码如下:
public class Client {
public static void main(String[] args) {
ServiceService ss = new ServiceService();
Service se = ss.getServicePort();
String str = se.sayChinese("Hello world");
String str1 = se.sayEnglish("你好");
System.out.println(str);
System.out.println(str1);
}
}
此时运行Client就可以访问服务端的数据。