当我们使用WSDL生成一个存根时,它将在下面的类中包含这一行。
@WebServiceClient(name =“testService”,targetNamespace =“http://test.soap.coh.mycompany.com/”,wsdlLocation =“file:/ C:/ Users / sam / Documents / NetBeansProjects / test / trunk / test-service-co / target /wsdl/co/test/wsdl/testService.wsdl“)
当您在具有源代码的本地方式部署耳朵时,这很好。
但是当我们尝试开发这个从我的桌面在dev服务器中创建的耳朵时,它会给出异常,因为路径不是avilabel。
现在我的问题是如何生成我们没有上述问题的存根。 请注意我们正在使用maven生成存根。
答案 0 :(得分:0)
在部署时动态生成存根
答案 1 :(得分:0)
如果您使用 CXF / Jaxws ,您可以这样做
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated-sources/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${project.basedir}/src/main/resources/wsdl/FooService.wsdl</wsdl>
<wsdlLocation>classpath:wsdl/FooService.wsdl</wsdlLocation>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
您也可以只提供FooService.wsdl
参考: How to avoid the need to specify the WSDL location in a CXF or JAX-WS generated webservice client?
如果您使用 jaxws-maven-plugin 进行配置,那么我相信上面的选项可以在其JAXWS WsImport compiler from Maven2配置部分为jaxws:wsimport配置。我自己也没试过。