几种调用web service的方式(含spring)

首先写一个服务端:

  1.  
  2. package com.pp.ws.server;
  3.  
  4. import javax.jws.WebMethod;
  5. import javax.jws.WebParam;
  6. import javax.jws.WebService;
  7.  
  8. @WebService(targetNamespace="http://wsapi.pp1618.com", serviceName="PPLoginService")
  9. public class LoginService {
  10.  
  11. @WebMethod
  12. public String login(@WebParam(name="username") String username, @WebParam(name="password") String password){
  13. if(username != null && username.equals(password)){
  14. return "OK";
  15. }
  16. return "Faliure";
  17. }
  18. }
  19. package com.pp.ws.server;
  20.  
  21. import javax.xml.ws.Endpoint;
  22.  
  23. public class AppServer {
  24. public static void main( String[] args ) {
  25. Endpoint.publish("http://127.0.0.1:6644/user/login", new LoginService());
  26. }
  27. }

启动。然后,用wsimport(JDK自带命令,本文章中使用的是JDK1.8)生成源代码,命令如下:

wsimport -s ./src -p com.pp.client.ws -encoding utf-8 http://127.0.0.1:6644/user/login?wsdl

另外新建一个maven项目,把上面生成的代码(src目录)拷贝到项目的src目录中去

代码结构如下:

并且加入spring依赖

  1.  
  2. <dependency>
  3. <groupId>org.springframework</groupId>
  4. <artifactId>spring-web</artifactId>
  5. <version>4.3.2.RELEASE</version>
  6. </dependency>
  7. 调用的示例代码如下:
  8. package com.pp.client;
  9.  
  10. import java.net.MalformedURLException;
  11. import java.net.URL;
  12.  
  13. import javax.xml.namespace.QName;
  14. import javax.xml.ws.Service;
  15.  
  16. import org.springframework.context.annotation.AnnotationConfigApplicationContext;
  17. import org.springframework.context.annotation.Bean;
  18. import org.springframework.context.annotation.Configuration;
  19. import org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBean;
  20.  
  21. import com.pp.client.ws.LoginService;
  22. import com.pp.client.ws.PPLoginService;
  23.  
  24. public class AppClient {
  25.  
  26. //方式一
  27. public static void fun1() throws Exception {
  28. URL url = new URL("http://127.0.0.1:6644/user/login?wsdl");
  29. //QName的两个参数,参照LoginService上面的注解
  30. QName qname = new QName("http://wsapi.pp1618.com", "PPLoginService");
  31. Service service = Service.create(url, qname);
  32. LoginService ls = service.getPort(LoginService.class);
  33. System.out.println(ls.login("admin", "123"));
  34. System.out.println(ls.login("admin", "admin"));
  35. }
  36.  
  37. //方式二(PPLoginService内部其实使用的是方式一)
  38. public static void fun2() throws Exception {
  39. URL url = new URL("http://127.0.0.1:6644/user/login?wsdl");
  40. PPLoginService ppls = new PPLoginService(url);
  41. LoginService ls = ppls.getLoginServicePort();
  42. System.out.println(ls.login("admin", "123"));
  43. System.out.println(ls.login("admin", "admin"));
  44. }
  45.  
  46. //方式三,使用spring封装的方式
  47. public static void fun3() throws Exception {
  48. AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(WSConfig.class);
  49. LoginService ls = context.getBean(LoginService.class);
  50. System.out.println(ls.login("admin", "123"));
  51. System.out.println(ls.login("admin", "admin"));
  52. context.close();
  53. }
  54.  
  55. public static void main(String[] args) throws Exception {
  56. fun1();
  57. fun2();
  58. fun3();
  59. }
  60. }
  61.  
  62. @Configuration
  63. class WSConfig {
  64.  
  65. @Bean
  66. public JaxWsPortProxyFactoryBean createMainCouponService() throws MalformedURLException {
  67. //JaxWsPortProxyFactoryBean 类在spring-web.jar里面
  68. JaxWsPortProxyFactoryBean bean = new JaxWsPortProxyFactoryBean();
  69. bean.setServiceInterface(LoginService.class);
  70. bean.setServiceName("PPLoginService");
  71. bean.setWsdlDocumentUrl(new URL("http://127.0.0.1:6644/user/login?wsdl"));
  72. //设置超时
  73. bean.addCustomProperty("com.sun.xml.internal.ws.request.timeout", 20000);
  74. bean.addCustomProperty("com.sun.xml.internal.ws.connect.timeout", 20000);
  75. return bean;
  76. }
  77. }

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

php编程基础教程.pptx|php编程培训,php,编程,基础,教程,pptx
php编程基础教程.pptx

历史上的今天:04月28日

referrer策略和meta标签的问题

referrer策略和meta标签的问题请求后端接口时,banner图片的请求出现403错误:GEThttp://xxxxxxxxxxxx403(Forbidden)。在网上搜寻一番,解决方法如下:在index.html中的head中添加&lt;meta name=&quot;referrer&quot; content=&quot;no-referrer&quot; /&gt;。在此之前,关于r

热门专题

国家开放大学|国家开放大学报名,国家开放大学报考,国家开放大学,什么是国家开放大学,国家开放大学学历,国家开放大学学费,国家开放大学报名条件,国家开放大学报名时间,国家开放大学学历,国家开放大学专业
国家开放大学
弥勒综合高中|弥勒综合高中
弥勒综合高中
云南巨榕教育投资集团有限公司|云南巨榕教育投资集团有限公司,巨榕教育集团,巨榕教育
云南巨榕教育投资集团有限公司
易捷尔高职单招|易捷尔高职单招,易捷尔高职单招培训,单招分数线,单招录取分数线,高职单招学校分数线
易捷尔高职单招
昆明综合高中|昆明综合高中
昆明综合高中
安徽中源管业|安徽中源管业,安徽中源管业mpp电力管,安徽中源管业cpvc电力管,安徽中源管业pe穿线管,安徽中源管业电力管,安徽中源管业排水管,安徽中源管业通信管,安徽中源管业管材
安徽中源管业
易捷尔单招|易捷尔单招,易捷尔单招培训,易捷尔单招报名,易捷尔单招考试,易捷尔单招培训学校,易捷尔单招分数
易捷尔单招
综合高中|云南综合高中,昆明综合高中,综合高中能考本一吗,综合高中和普通高中的区别,综合高中是什么意思,综合高中能参加全国统一高考吗,综合高中可以考哪些大学,综合高中的学籍是什么
综合高中

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部