开发者社区> 科技小能手> 正文

如何用WSDL4J构建Spring+AXIS自动创建的Web service对应客户端

简介:
+关注继续查看
如何用WSDL4J构建Spring+AXIS自动创建的Web service对应客户端
我的另一篇博文Spring集成AXIS2的Web service配置方法(http://dannyyuan.blog.51cto.com/212520/160504)提过到如何用Spring+AXIS自动完成WSDL的定义和对象拆装/封装,简单地把Spring声明的bean所有公开方法转换成Web service方法。
而Apache项目WSDL4J则是根据WSDL的XML文档就可以自动生成Web service的客户端代码,这样的话,构建web service服务端和客户端都显得没有多少手工编码了。其实WSDL4J也是可以生成服务端代码的,可是手工编写WSDL还不如用AXIS自动生成来得快。
用WSDL4J创建客户端代码的命令如下:
java -cp %AXIS_CLASSPATH% java org.apache.axis.wsdl.WSDL2Java -o DIR_NAME -p PACKAGE_NAME http://ws-server/proj-name/services/service-name?wsdl
其中AXIS_CLASSPATH应该包括axis.jar,commons-discovery.jar,commons-logging.jar,jaxrpc.jar,log4j.jar,saaj.jar,wsdl4j.jar,activation.jar,mail.jar。
该命令会在所指定目录下创建JAVA包,里面有[web_service]Locator.java, [web_service].java, [web_service]PortType.java, [web_service]SOAP11BindingStub.java,[web_service]SOAP12BindingStub.java,以及方法中所有涉及的参数bean等。
客户代码只需new [web_service]Locator实例,其实现了[web_service]接口,用get[web_service]SOAP11port_http(URL)方法取得方法实现对象[web_service]PortType实现,可以直接调用其方法像本地方法一样了。URL如果是HTTPS协议的,需要设SSL证书路径到系统属性配置中去(System.setProperty("javax.net.ssl.trustStore","ssl.cer");)
上面的都是简单的工具描述,可是如果不注意会出现一些意料不到的问题。
1、首先AXIS自动发布的WS方法参数会自动对应bean方法的参数名,结果在构建SOAP元素XML标签会映射过来,如果你用AOP想实现基本检验和类型检查之类的拦截的话,就要小心SOAP元素名与bean方法参数名的关系了;
2、其次WSDL2JAVA小工具好像不支持HTTPS(用户检验支持),这时可以用浏览器打开WSDL文档然后保存成文件被调用;
3、生成的JAVA代码会把URL写死(如果WSDL2JAVA工具用URL参数),所以默认创建PortType(不带参数)的方法会用到该URL;
4、如果Spring的ws 方法参数有通用类型如Object会导致序列化/反序列化去错,必须参数和返回类型保证为POJO对象或基本数据类型。

5、AXIS2有一些不同之处,需注意AXIS2基于JDK6。


本文转自 dannyy1026 51CTO博客,原文链接:http://blog.51cto.com/dannyyuan/584466




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
java202304java学习笔记第六十一天-ssm-spring配置文件-spring集成web环境
java202304java学习笔记第六十一天-ssm-spring配置文件-spring集成web环境
10 0
BXA
Spring MVC框架详解打造Web应用
Spring MVC是一个基于Java轻量级的、模型-视图-控制器(MVC)架构的Web框架,具有高度的灵活性和松耦合性。它专注于提供良好的开发体验和快速的开发效率。
31 0
Spring Boot第五弹,WEB开发初了解~
Spring Boot第五弹,WEB开发初了解~
13 0
Java Web实战 | Spring MVC案例:设计一个简单的Web应用
本文通过一个简单的Web应用来演示Spring MVC入门程序的实现过程。具体步骤如下。
90 0
Java Web实战 | Spring AOP开发
下面,通过一个案例讲授如何通过Advisor的子接口进行Spring AOP开发,步骤如下所述。
47 0
Spring Boot 学习04-----Spring Boot 开发一个Web应用程序
接着来学习Spring Boot,很焦虑,很彷徨,但是日子还是要过,生活还是要继续,我始终有一颗不服输的心。
39 0
Spring框架:第九章:Spring整合Web
Spring框架:第九章:Spring整合Web
64 0
Spring MVC: 一种简洁且强大的Web应用框架
这篇文章介绍Spring MVC,Spring MVC是现在基本所有Java程序的主流开发框架,这篇文章主要介绍三部分内容: 实现用户和程序的映射(在浏览器输入URL地址之后,能够在程序中匹配到相应方法)。 服务器端得到用户的请求参数 服务器端将结果返回给用户(前端)
42 0
一文搞懂Spring开发Web项目
一文搞懂Spring开发Web项目
164 0
软件测试|后端web开发框架——Spring Boot
软件测试|后端web开发框架——Spring Boot
69 0
Spring 全家桶之 Spring Boot 2.6.4(六)- Web Develop(Part C)(下)
Spring 全家桶之 Spring Boot 2.6.4(六)- Web Develop(Part C)(下)
77 0
Spring 全家桶之 Spring Boot 2.6.4(六)- Web Develop(Part C)(上)
Spring 全家桶之 Spring Boot 2.6.4(六)- Web Develop(Part C)
63 0
Spring 全家桶之 Spring Web MVC(十)- Spring、Spring MVC 整合(下)
Spring 全家桶之 Spring Web MVC(十)- Spring、Spring MVC 整合
48 0
Spring 全家桶之 Spring Web MVC(十)- Spring、Spring MVC 整合(上)
Spring 全家桶之 Spring Web MVC(十)- Spring、Spring MVC 整合
51 0
+关注
科技小能手
文章
问答
视频
相关电子书
更多
PWA:移动Web的现在与未来
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多