如何用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




相关文章
|
4月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
79 4
|
18天前
|
存储 NoSQL Java
使用Java和Spring Data构建数据访问层
本文介绍了如何使用 Java 和 Spring Data 构建数据访问层的完整过程。通过创建实体类、存储库接口、服务类和控制器类,实现了对数据库的基本操作。这种方法不仅简化了数据访问层的开发,还提高了代码的可维护性和可读性。通过合理使用 Spring Data 提供的功能,可以大幅提升开发效率。
61 21
|
8天前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
40 7
|
3月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
170 62
|
2月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
103 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
3月前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
407 12
基于开源框架Spring AI Alibaba快速构建Java应用
|
2月前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
210 5
|
3月前
|
消息中间件 Java Kafka
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
87 1
|
3月前
|
XML Java Maven
WebService客户端调用的5种常见方式
本文介绍了在Java中创建和调用WebService的方法,包括服务端的搭建、配置类的添加以及客户端的多种调用方式(如使用JDK原生代码、wsimport命令、动态调用、代理工厂及HttpClient)。文中详细展示了每种方法的实现步骤和示例代码,强调了服务端与客户端参数实体类字段的兼容性,并推荐使用代理工厂方式进行调用。
312 0
WebService客户端调用的5种常见方式
|
3月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
231 2

热门文章

最新文章

  • 1
    打造高效的Web Scraper:Python与Selenium的完美结合
    13
  • 2
    Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
    26
  • 3
    AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
    20
  • 4
    【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
    54
  • 5
    部署使用 CHAT-NEXT-WEB 基于 Deepseek
    342
  • 6
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 7
    java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
    40
  • 8
    零基础构建开源项目OpenIM桌面应用和pc web- Electron篇
    28
  • 9
    【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
    22
  • 10
    FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
    55