1.接口:(打上service注解)
package ws.qlq.a; import javax.jws.WebService; /** * 面向接口的webservice发布方式 * * */ @WebService public interface JobService { public String getJob(); }
2.实现类(也要打赏注解设置服务端点接口全路径)
package ws.qlq.a; import javax.jws.WebService; @WebService(endpointInterface="ws.qlq.a.JobService")//设置服务端点接口 ,指定对外提供服务的接口 public class JobServiceImpl implements JobService { @Override public String getJob() { return "JEE研发工程师|Android研发工程师|数据库工程师|前端工程师|测试工程师|运维工程师"; } public void say(){ System.out.println("早上好!"); } }
3.发布service的类
package ws.qlq.a; import javax.xml.ws.Endpoint; public class Test { public static void main(String[] args) { JobService jobService=new JobServiceImpl(); String address="http://127.0.0.1:9999/ws/jobservice"; Endpoint.publish(address, jobService); System.out.println("wsdl地址:"+address+"?WSDL"); } }
结果:
wsdl地址:http://127.0.0.1:9999/ws/jobservice?WSDL
4.客户端通过wsimport生成本地代理以及打包成jar包
C:\Users\liqiang>cd Desktop
C:\Users\liqiang\Desktop>wsimport http://127.0.0.1:9999/ws/jobservice?WSDL
C:\Users\liqiang\Desktop>jar -cvf test.jar ./ws (打包之后名字为test.jar,打包的文件夹为当目录的ws文件夹)
已添加清单
正在添加: ws/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: ws/qlq/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: ws/qlq/a/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: ws/qlq/a/GetJob.class(输入 = 411) (输出 = 277)(压缩了 32%)
正在添加: ws/qlq/a/GetJobResponse.class(输入 = 733) (输出 = 414)(压缩了 43%)
正在添加: ws/qlq/a/JobService.class(输入 = 772) (输出 = 430)(压缩了 44%)
正在添加: ws/qlq/a/JobServiceImplService.class(输入 = 2304) (输出 = 1036)(压缩了
55%)
正在添加: ws/qlq/a/ObjectFactory.class(输入 = 1495) (输出 = 661)(压缩了 55%)
正在添加: ws/qlq/a/package-info.class(输入 = 230) (输出 = 184)(压缩了 20%)
5.客户端测试webservice(将上面打好的jar包加进项目)
package cn; import ws.qlq.a.JobService; import ws.qlq.a.JobServiceImplService; public class JobServiceTest { public static void main(String[] args) { JobServiceImplService jobServiceImplService = new JobServiceImplService(); JobService jobServiceImplPort = jobServiceImplService.getJobServiceImplPort(); String job = jobServiceImplPort.getJob(); String [] jobs =job.split("\\|"); for (String s:jobs){ System.out.println(s); } } }
JEE研发工程师
Android研发工程师
数据库工程师
前端工程师
测试工程师
运维工程师