我正在尝试创建一个客户端库来从java访问Mantis。问题是我收到了错误,我不知道为什么。
运行此命令:
wsimport http://www.mantisbt.org/demo/api/soap/mantisconnect.php?wsdl
简直失败了。它应该创建某种客户端库来从java访问服务,但是我收到了这个错误:
[ERROR] "Use of SOAP Encoding is not supported.
SOAP extension element on line 1,075 in http://www.mantisbt.org/demo/api
/soap/mantisconnect.php?wsdl has use="encoded" "
我在互联网上看到了这个错误的模糊引用,它似乎是一个指令的错误,但事实并非如此:我试图通过下载的xml版本解决这个问题没用。
我想我可能需要某种目录来成功实现这一代,可能是吗?如果是这样,有人如何创建这个?我做了一些搜索,但我对Web服务的了解总体来说太有限了。
提前致谢,
答案 0 :(得分:1)
问题的关键在于,螳螂WSDL正在描述一个rpc /编码的Web服务,现代wsimport工具不支持该样式。
不同类型的Web服务样式的良好写法位于http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/。
Best way to consume RPC/encoded webservice?提供了相关问题和自助服务答案。这个回答使得评论'我对使用JAX-RPC进行这项工作也有疑问,因为它已经过时了。',但这真的是你在这里处理的事情,所以使用'旧库'真的会是正确的方法。
答案 1 :(得分:1)
使用Axis 1.4是一个选项吗?如果是,我们在Maven central上部署了Axis 1 SOAP stubs for MantisBT。
或者,在jerr/mantis-ws-client的Github上有一个源项目,应该如何使用JAX-RPC构建工件。