1.接口:(打上service注解)
package ws.qlq.a;import javax.jws.WebService;/** * 面向接口的webservice发布方式 * ?* ?*/@WebServicepublic 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研发工程师
数据库工程师
前端工程师
测试工程师
运维工程师
带接口的webservice 的发布
原文地址:http://www.cnblogs.com/qlqwjy/p/7569181.html