无法使用wsdl2java从wsdl生成java类

时间:2013-03-18 20:34:29

标签: java webservice-client wsdl2java

我使用wsdl从.NET应用程序生成此StackService文档。 我正在使用Apache CXF来获取一些生成的java类。

我正在运行以下命令(windows):

D:\ SomePath> wsdl2java -d d:\ temp http://mywsdl.com

结果如下:

WSDLToJava错误:

摘要:失败:50,警告:0

<<<错误!

消息中的

部分< {http://schemas.servicestack.net/types} CadastroUsuarioOut>引用类型< {http://schemas.servicestack.net/types} CadastroUsuarioResponse>在模式中找不到

部分在消息< {http://schemas.servicestack.net/types} ContratoImovelIn>引用类型< {http://schemas.servicestack.net/types} ContratoImovel>在模式中找不到

加上48个更像这些部分的消息错误

WSDL是自动生成的,并且正被其他系统成功使用。

任何想法?

由于

2 个答案:

答案 0 :(得分:2)

我收到了相同的错误消息(当然使用了不同的wsdl),我发现你的< wsdl:type中有< xsd:import 秒。

我的问题的解决方案是将 schemaLocation 添加到< xsd:import

示例旧

<xsd:import namespace="http://schemas.servicestack.net/types"/>

新示例

<xsd:import namespace="http://schemas.servicestack.net/types" schemaLocation="types.xsd" />

答案 1 :(得分:1)

检查wsdl的'types'部分。 'types'部分定义了用于在SOAP消息中交换数据的各种xml类型。 查看示例wsdl文件 -

http://heasarc.gsfc.nasa.gov/itwg/wsdl_all.html

验证wsdl的'types'部分是否有效,并定义服务使用的所有数据类型。

通过查看错误,“类型”定义中缺少“CadastroUsuarioResponse”和“ContratoImovel”。