使用 jaxws-ri-2.2.10,根据wsdl文件生成webservice客户端:
wsimport -s src -d bin -p com.client document.xml
出现错误,错误如下:[ERROR] 无法生成 SEI, 类com.client.XX 已存在。请使用JAX-WS定制设置重命名 wsdl:portType
Exception in thread "main" com.sun.tools.ws.wscompile.AbortException at com.sun.tools.ws.wscompile.WsimportTool.generateCode(WsimportTool.java:469) at com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:209) at com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:183) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.sun.tools.ws.Invoker.invoke(Invoker.java:174) at com.sun.tools.ws.WsImport.main(WsImport.java:57)
原因是wsdl:portType 的名称和wsdl:operation的名称相同导致的,我的wsdl(document.xml)中:ZMM_QYZXK_SPP_CGZT和ZmmQyzxkSppCgzt去掉下划线、不区分大小写的情况下,是同名文件。
<wsdl:portType name="ZMM_QYZXK_SPP_CGZT"> <wsp:Policy> <wsp:PolicyReference URI="#IF_ZMM_QYZXK_SPP_CGZT" /> </wsp:Policy> <wsdl:operation name="ZmmQyzxkSppCgzt"> <wsp:Policy> <wsp:PolicyReference URI="#OP_ZmmQyzxkSppCgzt" /> </wsp:Policy> <wsdl:input message="tns:ZmmQyzxkSppCgzt" /> <wsdl:output message="tns:ZmmQyzxkSppCgztResponse" /> </wsdl:operation> </wsdl:portType>
解决方法使用customization进行重命名(可以重命名各种名称),重命名ZMM_QYZXK_SPP_CGZT为新名称ZMMQYZXKSPPCGZTClass:bind.xml
<bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" wsdlLocation="file:/E:/document/download/jaxws-ri-2.2.10/bin/document.xml" xmlns="http://java.sun.com/xml/ns/jaxws"> <package name="com.lantong.dpcenter.ws.erpclientCgzt"/> <!-- default settings --> <enableWrapperStyle>true</enableWrapperStyle> <enableAsyncMapping>false</enableAsyncMapping> <!-- wsdl:portType customization --> <bindings node="wsdl:definitions/wsdl:portType[@name='ZMM_QYZXK_SPP_CGZT']"> <!-- change the generated SEI class --> <class name="ZMMQYZXKSPPCGZTClass"/> <!-- you can also override the following customization settings --> <enableWrapperStyle>true</enableWrapperStyle> <enableAsyncMapping>false</enableAsyncMapping> </bindings> </bindings>
使用 -b <path> 指定 jaxws/jaxb 绑定文件或附加模式
wsimport -s src -d bin -b bind.xml -p com.client document.xml
搞定
参考
http://www.mincoder.com/article/859.shtml
相关推荐
wsdl2java 源码 CXFDemo 一个关于CXF实现jax-ws规范的webservice #CXF框架 Apache CXF=Celtix+Xfire.是一个开源的一个webservice,可以与spring无缝集成。支持soap1.1、1.2、RESTtful或者CORBA。 ##使用CXF实现jax-...
CXF前端(Frontend)是编程使用的API,用来开发和对外暴露Web Services。CXF提供两种类型的前端(Frontend):JAX-WS和简单前端(Simple Frontend)。本节将详细介绍JAX-WS前端。 JAX-WS前端 Code-First方式 创建...
EMF.Eclipse Modeling Framework.2nd.PKU.SEI.SA.part2
EMF.Eclipse Modeling Framework.2nd.PKU.SEI.SA.part1
无组件源码测试工具,用测试源码用的。 [www.sei7.com]
细节: 问题从Eclipse生成WSDL 服务 URI 构建不正确更改时, cxf-beans.xml完全限定类名 (FQC) 不会更新, 一些 JAX-WS 注释,resp。 它们的属性没有在生成中使用或被错误地提升。 一些属性/配置的静态例如,@ @...
使用WSDL / XSD中的JAX-B生成所有必要的Java类(使用补充的Maven插件 使用100%纯Java配置在Spring Context中启动Apache CXF 端点初始化的完全自动化-无需配置Apache CXF端点,所有这些工作都是根据WSDL和生成的...
--log-level <string> Logging level: none error warning info debug full. Default info --no-progress Disable CLI progress reports --[no-]cu-stats Enable logging stats about distribution of cu across ...
基于模型驱动方法,对AADL(体系结构分析设计语言)模型的框架代码自动生成技术进行了研究,提出了从AADL模型元素到C和Ada的语法元素的映射规则,由此实现了自动代码生成器generator并集成在开源工具OSATE中。...
sei-cert-cpp-coding-standard-2016-v01_c_安全编程_sei-cert-c-coding_S
python库,解压后可用。 资源全名:sei_py-0.1.0-py3-none-any.whl
很好的编译原理课件,PPT格式。 适合讲课和自学用
H3C S5500SEI_D-CMW710-R6127 交换机版本更新。官网下载最新。
C 编码规范,描述一些规范,实际编码中注意的问题. SEI CERTC Coding StandardRules for Developing Safe, Reliable, and Secure Systems
分析了该信号的时域、频域、倒谱,循环谱等,基于K均值的PSO聚类算法,Relief计算分类权重。
sei26.github.io:我的首页
SEI-CC-7 大会 这将是您的共享类存储库! 指南、课堂实验室和代码示例以及其他资源都将在这里提供。 内容 课程日期和假期 链接到全局缩放室 课程设置 教学团队/联系方式 注册全球讲师办公时间的链接 链接到录制的...
SEI-CC-8 大会! 这将是您的共享类存储库! 指南、课堂实验室和代码示例以及其他资源都将在这里提供。 内容 课程日期和假期 链接到全局缩放室 课程设置 教学团队/联系方式 注册全球讲师办公时间的链接 链接到录制的...
SEI-R-10/19 - 你们这些了不起的人! 这将是您的共享类存储库! 指南、课堂实验室和代码示例以及其他资源都将在这里提供。 内容 课程日期和假期 链接到全局缩放室 课程设置 教学团队/联系方式 注册全球讲师办公时间...