Java wsimport";无法解析名称…“;
我一直在尝试导入以下web服务:使用${JAVA_HOME}/bin/wsimport:Java wsimport";无法解析名称…“;,java,web-services,wsdl,wsimport,Java,Web Services,Wsdl,Wsimport,我一直在尝试导入以下web服务:使用${JAVA_HOME}/bin/wsimport: wsimport -version JAX-WS RI 2.1.6 in JDK 6 但我得到了以下错误: parsing WSDL... [WARNING] src-resolve: Cannot resolve the name 'soapenc:Array' to a(n) 'type definition' component. line 19 of http://soap.genome.j
wsimport -version
JAX-WS RI 2.1.6 in JDK 6
但我得到了以下错误:
parsing WSDL...
[WARNING] src-resolve: Cannot resolve the name 'soapenc:Array' to a(n) 'type definition' component.
line 19 of http://soap.genome.jp/KEGG.wsdl#types?schema1
[ERROR] undefined simple or complex type 'soapenc:Array'
line 19 of http://soap.genome.jp/KEGG.wsdl
(....)
问题是来自WSDL还是来自wsimport的实现?我应该使用其他工具吗
谢谢
Pierresoapenc:Array表示一种称为“RPC编码”的非标准web服务编码样式。这是一种非常古老的风格,过去在微软平台上很流行;它已经过时(也就是说,它不是WS-i规范的一部分),而且像JAX-WS这样的现代工具也不支持它 据我所知,唯一支持RPC编码的web服务的java工具是。我从这个bug报告中找到了(显然是)一个解决方法: 基本上,您需要将
schemaLocaion
添加到import
定义中:
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"
schemaLocation="http://schemas.xmlsoap.org/soap/encoding/" />
请告诉我如何将RPC/编码样式的wsdl转换为新支持的样式?您可以使用神秘的Axis1,然后在其上编写自己的REST API。为什么还要费心创建wsdl呢?