我使用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是自动生成的,并且正被其他系统成功使用。
任何想法?
由于
答案 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”。