我需要使用带有webservice-security的web服务。这个web服务是使用cxf(而不是我)创建的。
我到目前为止尝试过:
使用本地下载的wsdl(http://theopentutorials.com/examples/java-ee/jax-ws/create-and-consume-web-service-using-jax-ws/)进行wsimport。这失败了几个错误。我尝试了它没有-extension说"没有可用的端口,尝试使用-extension"。我试着用-extension说"没有标准的SOAP"。所以我认为这可能是因为他们使用了CXF。
在eclipse中使用cxf的Web服务客户端(http://help.eclipse.org/luna/topic/org.eclipse.jst.ws.cxf.doc.user/tasks/create_client.html)。当我选择步骤3d" Apache CXF 2" OK按钮变灰。如果我理解的话,可能是一个未解决的错误(https://bugs.eclipse.org/bugs/show_bug.cgi?id=351799)。
wsdl2java(https://axis.apache.org/axis2/java/core/tools/eclipse/wsdl2java-plugin.html#Installation)。我按照说明在单击完成时获取异常"完成进程时发生错误 - java.lang.InterruptedException:java.lang.RuntimeException:java.lang.reflect.InvocationTargetException"。
编辑:我现在在命令提示符下运行wsdl2java,收到以下错误:
wsdl2java -d C:\ xkfz -client -verbose C:\ xkfz.wsdl 加载FrontEnd jaxws ... 加载DataBinding jaxb ... wsdl2java -d C:\ xkfz -client -verbose C:\ xkfz.wsdl wsdl2java - Apache CXF 3.0.1
2014年8月26日下午4:07:23 org.apache.cxf.wsdl11.WSDLServiceBuilder checkForWrapped 信息:无法解开操作{http://www.xoev.de/schemata/xkfz/1_1} verarbeiteXKfz,输入消息必须引用具有与操作相同的本地名称的全局元素声明
有没有办法生成我想要的课程?这不应该那么复杂: - /
我将Win7 / 64与最新的Eclipse EE和JDK一起使用。
答案 0 :(得分:4)
CXF包含一个Maven插件,可以从WSDL生成java工件。 它足够添加一些指定的配置值,如下所示:
<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/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/myService.wsdl</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
有关详细信息,请参阅this地址。 希望这会有所帮助。
答案 1 :(得分:1)
尝试使用eclipse插件生成类
答案 2 :(得分:0)
我发现我可以忽略wsdl2java的错误,因为它反正生成了一个类。根据我从ws-creator获得的示例,我只期望另一个类名。