Net的wsdl生成webservice 异常:undefined simple or complex type 'soapenc:Array'

错误代码如下:

E:\>wsimport -s D:\ttest\src -p com.cn.phone -verbose  D:\ttest\Book.asmx.xml

parsing WSDL...

[WARNING] src-resolve: Cannot resolve the name 'soapenc:Array' to a(n) 'type definition' component.  

line 505 of file:/D:/ttest/Book.asmx.xml#types?schema2

[ERROR] undefined simple or complex type 'soapenc:Array'  

line 505 of file:/D:/ttest/Book.asmx.xml


错误原因:

net那边给的wsdl使用的规范过低,生成之后的不认原来的那种规范,使生成代码不适应我们java这边的使用。


[html]  view plain  copy
 print ?
  1. <s:schema targetNamespace="http://tempuri.org/AbstractTypes">  
  2.       <s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />  
  3.        <s:complexType name="ArrayOfString">  
  4.         <s:sequence>  
  5.           <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />  
  6.         s:sequence>  
  7.       s:complexType>  
  8.       <s:complexType name="StringArray">  
  9.         <s:complexContent mixed="false">  
  10.           <s:restriction base="soapenc:Array">  
  11.             <s:sequence>  
  12.               <s:element minOccurs="0" maxOccurs="unbounded" name="String" type="s:string" />  
  13.             s:sequence>  
  14.           s:restriction>  
  15.         s:complexContent>  
  16.       s:complexType>  

更改后:

[html]  view plain  copy
 print ?
  1. <s:schema targetNamespace="http://tempuri.org/AbstractTypes">  
  2.      <s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />  
  3.   <s:complexType name="ArrayOfString">  
  4.        <s:sequence>  
  5.          <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />  
  6.        s:sequence>  
  7.      s:complexType>  
  8.    s:schema>  

重新执行:wsimport -s D:\ttest\src -p com.cn.phone -verbose  D:\ttest\Book.asmx.xml

成功生成。

注意:在windows下必须以管理员身份形式运行此命令。

你可能感兴趣的:(webservice,java)