`
bnmnba
  • 浏览: 293704 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

wsimport [ERROR] 无法生成 SEI, 类com.xx.XX 已存在。请使用JAX-WS定制设置重命名 wsdl:portType

 
阅读更多

使用 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

 

 

分享到:
评论

相关推荐

    jax-ws api jar包

    JAX-WS可以通过WSDL文件自动生成客户端代理类。 - **JAXB(Java Architecture for XML Binding)**:与JAX-WS配合使用,负责XML数据和Java对象之间的转换。当处理XML消息时,JAXB可以将XML数据解析成Java对象,反之...

    JAX-WS2.0 API

    使用`wsimport`工具,开发者可以从SEI生成WSDL和客户端存根代码。 4. **客户端代理(Proxy):**JAX-WS提供了客户端API,允许开发者通过代理对象调用Web服务。这些代理对象是由`wsimport`工具生成的,它们封装了与...

    JAX-WS规范

    4. **生成客户端代理**:使用JAX-WS工具(如wsimport)根据WSDL生成客户端调用所需的类和Stubs。 5. **服务调用**:通过客户端代理调用Web服务,传递参数,接收响应。 ### 4. JAX-WS与WSDL的关系 WSDL是描述Web...

    JAX-WS使用教程(内含jar包)

    - **服务发布与消费**: JAX-WS提供工具将SEI映射为WSDL,以及从WSDL生成客户端调用代码。 **二、JAX-WS服务端开发** 1. **创建SEI**:定义一个Java接口,标记为`@WebService`,接口中的方法对应Web服务的端点操作...

    jax-ws webservice简单demo

    3. **生成WSDL**:使用JAX-WS工具(如`wsimport`)自动生成WSDL文件,基于SEI接口。 4. **部署服务**:将实现类和WSDL部署到应用服务器,例如Tomcat或Jetty。 5. **生成客户端代理**:客户端使用`wsimport`工具或`...

    JAX-WS2.1用户指南

    通过WSDL,JAX-WS可以自动生成客户端代理类,使得调用Web服务如同调用本地Java方法一样简单。 10. **与Java EE的集成** 在Java EE环境中,JAX-WS服务可以轻松地部署在应用服务器上,利用容器提供的事务、安全性、...

    webservice之jax-ws

    - **注解驱动**:通过在SEI类和方法上使用注解(如`@WebService`、`@WebMethod`等),可以直接在编译时生成服务代理和部署描述符。 - **基于XML的配置**:对于更复杂的场景,可以通过XML配置文件来描述服务的细节...

    JAX-WS所需Jar包

    4. **jaxws-tools.jar**: 包含了JAX-WS相关的工具,如wsimport和wsgen,它们分别用于从WSDL生成Java源代码和服务端点,以及从Java源代码生成WSDL。 5. **sjsxp.jar**: 这是Java Simple XML Parser (JSXP)的实现,是...

    metro-jax-ws-jaxws221x.zip

    【标题】"metro-jax-ws-jaxws221x.zip" 提供的是一个关于JAX-WS(Java API for XML Web Services)的开发示例,其中包含了JAX-WS 2.2.1版本的相关组件和库文件。这个压缩包是针对Java开发者设计的,用于帮助他们理解...

    jax-ws 2.0文档说明以及源码

    4. **生成WSDL**:JAX-WS会根据SEI自动生成WSDL。 5. **创建客户端**:使用`wsimport`工具或IDE生成客户端代理类,这些类可以直接调用远程Web服务。 6. **调用服务**:通过客户端代理类调用Web服务方法,传递参数,...

    JAX-WS API, JAX-RS API

    **JAX-WS API** Java API for XML Web Services (JAX-WS) 是Java平台上的一个标准接口,用于创建和消费Web服务。它是Sun Microsystems在2004年推出的一个重要框架,旨在简化Web服务的开发,使得Java开发者能够更...

    Web Service学习小结——基于JDK自带JAX-WS实现的web service

    - **服务代理生成**:通过WSDL文件,JAX-WS的wsimport工具可以生成客户端所需的Java类,这些类提供了调用Web服务的方法。 - **服务调用**:使用生成的客户端代码,可以通过服务代理类调用远程Web服务的方法。 3. ...

    jax-ws实现webservice调用

    JAX-WS提供了`wsimport`工具,它可以从WSDL生成Java客户端代理类。运行如下命令: ```bash wsimport -keep -verbose -servicename @{serviceName} -portname @{portName} http://serverAddress/HelloService?wsdl `...

    JAX-WS Webservice

    `jaxws-ri`是JAX-WS参考实现的源代码包,包含JAX-WS API的实现以及相关的工具,如`wsimport`,用于从WSDL生成客户端代码。开发者可以使用这个库来快速开发和测试JAX-WS Web服务。 **7. JAX-WS与JAX-RS比较** JAX-...

    MyEclipse6_5上基于JAX-WS开发Webservice(中文示例)

    通过右键点击项目,选择“New” -&gt; “Web Service” -&gt; “JAX-WS Web Service”,然后按照向导步骤操作,MyEclipse会根据SEI生成相应的WSDL文件。 3. 实现SEI:为SEI创建一个实现类,实现接口中定义的方法。这样,...

    Jax-WS的配置方式

    3. **生成WSDL**:使用Jax-WS工具(如wsimport或JAXB)自动生成WSDL文件,描述服务的接口和消息格式。 **3. 配置Jax-WS服务** 配置Jax-WS服务可以采用以下两种主要方式: - **注解驱动**:通过在SEI和实现类上使用...

    JAX-WS2.2.6包

    2. **WSDL(Web Services Description Language)生成**:JAX-WS可以自动生成WSDL文档,它是Web服务的接口定义,描述了服务如何被调用,包括消息格式、操作和绑定等信息。 3. **SOAP消息处理**:JAX-WS提供了...

    JAX-WS使用教程

    自顶向下是从WSDL文件开始,使用wsimport工具,通过WSDL定义来生成Java代码,这种方式适用于你已经有了WSDL描述文件。自底向上则从Java类开始,通过wsgen工具,生成WSDL和相关的XSD(XML Schema)文件,适用于你已经...

    JAX-WS-Deploy-To-Tomcat-Example

    - **配置web.xml**:在web.xml中,设置`&lt;servlet&gt;`和`&lt;servlet-mapping&gt;`元素,指定服务的URL和对应的Servlet类(通常为JAX-WS自动生成的服务类)。 - **部署到Tomcat**:将WAR文件复制到Tomcat的`webapps`目录下...

    JAX-WS_Java API for XML Web Services

    2. **生成WSDL**: 使用JAX-WS工具,如`wsimport`,从SEI生成WSDL文档。 3. **实现SEI**: 创建实现类,填充业务逻辑。 4. **部署服务**: 将服务打包成WAR文件,部署到应用服务器,如Tomcat、Glassfish等。 5. **...

Global site tag (gtag.js) - Google Analytics