帶接口的webservice 的發布
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研發工程師
數據庫工程師
前端工程師
測試工程師
運維工程師
帶接口的webservice 的發布