Java JAX-WS服务实现类名定制不起作用
我正在使用Maven为web服务生成实现代码。最初,此代码是使用其他东西(可能是Eclipse中的向导)从WSDL和模式生成的。jaxws-maven插件生成的服务实现类名是MyService\u myservicesoapimpl。最初生成时,实现类名为MyService\u SOAPImplementation。我猜Eclipse使用的向导允许用户选择实现类的名称。我尝试使用sei元素,但它不起作用。以下是我的POM中wsimport插件的一个片段:Java JAX-WS服务实现类名定制不起作用,java,web-services,maven,jax-ws,wsimport,Java,Web Services,Maven,Jax Ws,Wsimport,我正在使用Maven为web服务生成实现代码。最初,此代码是使用其他东西(可能是Eclipse中的向导)从WSDL和模式生成的。jaxws-maven插件生成的服务实现类名是MyService\u myservicesoapimpl。最初生成时,实现类名为MyService\u SOAPImplementation。我猜Eclipse使用的向导允许用户选择实现类的名称。我尝试使用sei元素,但它不起作用。以下是我的POM中wsimport插件的一个片段: <plugin> &
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>generate-sources</phase>
<id>generateMyServiceFromWSDL</id>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<genJWS>true</genJWS>
<bindingDirectory>${basedir}/src/main/bindings</bindingDirectory>
<bindingFiles>
<bindingFile>otherSchema.episode</bindingFile>
</bindingFiles>
<wsdlDirectory>${basedir}/src/main/resources/wsdl</wsdlDirectory>
<wsdlFiles>
<wsdlFile>MyService.wsdl</wsdlFile>
</wsdlFiles>
<wsdlLocation>${project.basedir}/src/main/resources/wsdl/MyService.wsdl</wsdlLocation>
<sourceDestDir>${project.basedir}/src/main/java</sourceDestDir>
<sei>com.myCompany.MyService_SOAPImplementation</sei>
<xdonotoverwrite>true</xdonotoverwrite>
<xnocompile>true</xnocompile>
<xdebug>true</xdebug>
<verbose>true</verbose>
<target>2.0</target>
</configuration
</execution>
...
但这似乎仍然没有任何效果-wsimport仍在以MyService_MyServiceSOAPImpl的形式生成实现。尝试更改您的
<jaxws:bindings node="wsdl:definitions/wsdl:portType[@name='MyService']">
到
请注意,节点路径的第二部分是服务,而不是端口类型。您将使用portType来定制服务接口,而不是实现
另一方面,需要注意的是,JAX-WS绑定似乎需要按照WSDL保存在自己的XML文件中,而不包含在JAXB绑定中
有些人可能会发现这里的JAX-WS绑定列表很有用:尝试更改您的
<jaxws:bindings node="wsdl:definitions/wsdl:portType[@name='MyService']">
到
请注意,节点路径的第二部分是服务,而不是端口类型。您将使用portType来定制服务接口,而不是实现
另一方面,需要注意的是,JAX-WS绑定似乎需要按照WSDL保存在自己的XML文件中,而不包含在JAXB绑定中
有些人可能会发现这里的JAX-WS绑定列表很有用:如果这对某些人有帮助,则需要对OPs bindings.xml文件进行两项更改才能使其正常工作: MGE已经建议了第一个更改—将Xpath中的wsdl:portType更改为wsdl:service 类名的命名空间必须是“jaxws”,因此 更改为:
<jaxws:class name="MyServiceSOAPImpl"/>
从
如果这对某人有帮助,则需要对OPs bindings.xml文件进行两项更改以使其正常工作: MGE已经建议了第一个更改—将Xpath中的wsdl:portType更改为wsdl:service 类名的命名空间必须是“jaxws”,因此 更改为:
<jaxws:class name="MyServiceSOAPImpl"/>
从
<jxb:class name="MyServiceSOAPImpl"></jxb:class>