我正在尝试创建一个客户端库来从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 服务的了解总体上太有限,无法实现这一目标。
提前感谢,
使用 Axis 1.4 是一种选项吗?如果是,我们已经在 Maven Central 上为 MantisBT 部署了 Axis 1 SOAP 存根。
或者,在 Github 上有一个 jerr/mantis-ws-client 的源项目,它应该如何使用 JAX-RPC 构建工件。
问题的症结在于螳螂WSDL描述的是rpc/编码的Web服务,而现代wsimport工具不支持这种风格。
关于不同类型的 Web 服务样式的良好文章 http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/。
相关问题和自助服务答案在使用 RPC/编码的 Web 服务的最佳方式?中提供。 这个答案使评论"我也怀疑使用JAX-RPC来完成这项工作,因为它已经过时了",但这确实是你在这里处理的问题,所以使用"旧库"真的是正确的方法。