服务端
1、创建一个用做webservice类,并在类上加 @WebService注解,不需要继承其它类。
2、在WebService类里面加入自定义的方法。静态方法、final方法不会被发布,@WebMethod(exclude=true)也不会被发布。
3、main方法里使用EndPoint类发布WebService类。 下面是一个最简单的WebService。。。
@WebService //java1.6 才 提供的
public class ServiceHello {
public String getValue(String name){
return "Hello:"+name;
}
public static void main(String[] args) {
Endpoint.publish("http://localhost:9090/Service/ServiceHello", new ServiceHello());
System.out.println("Service success!");
} //在浏览器输入http://localhost:9090/Service/ServiceHello?wsdl,可以查看webservice描述文件
}
客户端
使用wsimport命令创建客户端代码,下面列出wsimport常用参数
-d 目录 :class文件的目录
-s 目录 : java文件的目录
-p 包名 : 生成的java文件包
-encoding 编码方式 : 指定客户端代码的编码,可以写 utf-8,gbk2312
命令示例:wsimport -s . -p pkg http://localhost:9090/Service/ServiceHello?wsdl
最后的参数发布的webservice加上"?wsdl"。
把生成的java文件拷贝到项目里,就可以用了。
对应于文章上一段代码的客户端代码:
import pkg.ServiceHello;
import pkg.ServiceHelloService;
public class client {
public static void main(String[] args) {
ServiceHelloService shs=new ServiceHelloService();
ServiceHello serviceHello = shs.getServiceHelloPort();
System.out.println(serviceHello.getValue("world")); //和客户端的getValue对应
} // 控制台输出结果为Hello:world
}