【发布时间】:2012-01-26 16:14:39
【问题描述】:
我正在尝试使用 wsimport (JDK 6) 导入 WSDL。
但是,这失败了,告诉我:
关闭 BP 1.1 一致性警告
如何在wsimport 中配置这些?
我尝试使用以下方法运行 wsimport:
wsimport http://tripauthority.com/hotel.asmx?WSDL
但它只回复:
它不符合 WS-I BP 1.1:wsdl 绑定具有混合样式,它必须是 rpc-literal 或 document-literal 操作。尝试使用 -extension 开关运行 wsimport。
我已经尝试添加标志-extension,但 wsimport 仍然无法完成(也许我做错了?):
wsimport http://tripauthority.com/hotel.asmx?WSDL -extension
有人可以帮忙吗?谢谢
附:我不能使用 Eclipse 的向导来使用 WSDL 创建 Web 客户端,因为这将在不允许 rmi 包的 Google App Engine 上运行。除非有办法告诉此向导不要使用 RMI,否则我也会对此感兴趣。
更新
供应商另外推荐了这个,但是我不知道为此需要做什么:
建议:为了使其符合更改的实现 使用“rpc-literal”或“document-literal”SOAP 消息的服务。你 需要将显式 Use=SoapBindingUse.Literal 属性添加到所有 服务和方法级别属性:SoapRpcService、SoapRpcMethod、 SoapDocumentService,SoapDocument 方法。
建议:要使绑定符合要求,请添加显式 SoapRpcMethod 或 SoapDocumentMethod 属性到此绑定的所有 WebMethods。
【问题讨论】:
-
能否请您发布 WSDL 列表?或者链接太长?
-
@Tudor 我在帖子中添加了指向真实 WSDL 的链接。感谢您的观看。
-
您可以将 WSDL 下载到本地磁盘,然后从绑定元素中删除名称为“SubmitRequestRpc”的操作。然后使用本地修改的文件尝试 wsimport。
-
好的,我试试。但是删除这些操作会产生其他影响吗?
-
如果您没有通过这些操作调用服务,那么应该没有任何问题。问题是它们是 rpc 编码的,BP 1.1 不支持