首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用codehaus jaxws-maven-plugin重命名JAX-WS服务类的正确方法是什么?

使用codehaus jaxws-maven-plugin重命名JAX-WS服务类的正确方法是什么?
EN

Stack Overflow用户
提问于 2017-03-09 16:36:17
回答 1查看 865关注 0票数 0

重命名这些类的正确方法是什么?使用下面的配置,创建了类(Service1Service1Soap),但Service1没有像预期的那样命名为NewService

wsdl

代码语言:javascript
复制
<wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://uo.isis.stfc.ac.uk/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://com.example.target.namespace/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  ...
  <wsdl:service name="Service1">
    <wsdl:port name="Service1Soap" binding="tns:Service1Soap">
      <soap:address location="http://example.com/wsdl" />
    </wsdl:port>
    <wsdl:port name="Service1Soap12" binding="tns:Service1Soap12">
      <soap12:address location="http://example.com/wsdl" />
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

bindings.xml

代码语言:javascript
复制
<jaxws:bindings
         xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
         xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
         xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">

    <jaxws:bindings node="wsdl:definitions/wsdl:service[@name='Service1']">
        <jaxb:class name="NewService"/>
    </jaxws:bindings>
</jaxws:bindings>

pom.xml

代码语言:javascript
复制
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxws-maven-plugin</artifactId>
    <version>2.4.1</version>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>wsimport</goal>
            </goals>
            <configuration>
                <packageName>com.example.custom.package</packageName>
                <wsdlFiles>
                    <wsdlFile>path/to/wsdl</wsdlFile>
                </wsdlFiles>
                <bindingDirectory>
                    src/wsdl
                </bindingDirectory>
                <bindingFiles>
                    <bindingFile>
                        path/to/bindings.xml
                    </bindingFile>
                </bindingFiles>
            </configuration>
        </execution>
        <execution>
            ...
        </execution>
    </executions>
    <configuration>
        <sourceDestDir>${project.build.directory}/generated-sources/jaxws-wsimport</sourceDestDir>
        <xnocompile>false</xnocompile>
        <xendorsed>true</xendorsed>
        <extension>true</extension>
        <catalog>${basedir}/src/jax-ws-catalog.xml</catalog>
        <args>
            <arg>-B-XautoNameResolution</arg>
        </args>
        <vmArgs>
            <vmArg>-Djavax.xml.accessExternalSchema=all</vmArg>
        </vmArgs>
    </configuration>
</plugin>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-11 07:05:12

为了正确地进行定制,我修改了bindings.xml文件:对类使用jaxws名称空间,而不是jaxb名称空间(并完全删除jaxb名称空间)。

代码语言:javascript
复制
<bindings
     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
     xmlns="http://java.sun.com/xml/ns/jaxws">

    <bindings node="wsdl:definitions/wsdl:service[@name='Service1']">
        <class name="NewService"/>
    </bindings>
</bindings>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42690403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档