日期:2014-05-19  浏览次数:20666 次

用axis生成的wsdl,再用WSDL2JAVA生成客户端代码的时候
遇到了以下问题
生成的服务器端WSDL代码的根节点是这样的
<wsdl:definitions>
但是这个子节点却少了“wsdl:”变成
<types>

其他的子节点比如这个
<wsdl:message>
又不会

试了1.3跟1.4版本的,都是这样,不知道什么原因。

调用没有问题,但是用WSDL2JAVA生成客户端代码的时候会认为这个xml格式不正确。报下面的错误
WSDLException (at /wsdl:definitions/types): faultCode=INVALID_WSDL: Encountered
illegal extension element 'types' in the context of a 'javax.wsdl.Definition'. E
xtension elements must be in a namespace other than WSDL's.:
  at com.ibm.wsdl.xml.WSDLReaderImpl.parseExtensibilityElement(Unknown Sou
rce)
  at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(Unknown Source)
  at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
  at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
  at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
  at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.jav
a:516)
  at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.jav
a:495)
  at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
  at java.lang.Thread.run(Thread.java:534)

我把这个wsdl另存为文本,然后直接修改那个节点增加“wsdl:”变成
<wsdl:types>

就能正确生成客户端代码了。

请问谁知道怎么让axis生成的这个节点是带上“wsdl:”的?因为我看过别人wsdl地址上用axis1.4版本生成的是有的,我也换成v1.4版本却还是跟原来一样!

------解决方案--------------------
接触过一点但还没想出来
帮顶一下

------解决方案--------------------
帮顶了!!!
------解决方案--------------------
楼主喜欢追求完美,我也是啊,只是这样有时会比较累

最后还是祝贺问题解决
------解决方案--------------------
可以