IntelliJ IDEA 通过wsdl生成Java工程需要注意的几个问题


IntelliJ IDEA 是一个java的可视化开发 工具,可以很方便的将一个wsdl生成一个java工程。但是在生成过程中会出现一些问题:

    <complexType name="HelloWorldRequestType">
     <element name="Message" nillable="true" type="xsd:string"/>
     <element name="bParam"  nillable="true" type="xsd:string"/>
     <element name="pParam" nillable="true" type="xsd:int"/>
     <element name="sParam" type="xsd:int"/>
     <element name="nParam" nillable="true" type="xsd:string" />
     <element name="tParam" nillable="true" type="xsd:string"/>
     <element name="TParameter" nillable="true" type="xsd:string" minOccurs="0"/>
     <element name="rParam" nillable="true" type="xsd:int" minOccurs="0"/>
     <element name="RParameter" nillable="true" type="xsd:string"/>

   </complexType>

用来描述一个类型,HelloWorldRequestType  里面含有bParam,Message等字段。在转换成java工程的时候,

开头的小写字母t,b, p,s,n等会自动被转换成大写。而开头的大写字母R会自动被转换成小写。

例如:     “bParam”被转换成了“BParams”,需要手工将"BParam"改成"bParam"

        elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("BParam");
        elemField.setXmlName(new javax.xml.namespace.QName("urn:HelloWorldService", "bParam"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        elemField.setNillable(true);
        typeDesc.addFieldDesc(elemField); 

wsdl文件中变量描述的不同,生成的java工程中变量的类型也不一样。 同为int类型,          <element name="sParam" type="xsd:int"/>被转换成了   private int sParam;  而     <element name="rParam" nillable="true" type="xsd:int" minOccurs="0"/>被转换成了    private java.lang.Integer rParam;   如果该java工程需要通过jni调用c++ dll,则类型描述一定要对应。

更多关于IntelliJ IDEA的详细信息,或者下载地址请点这里

相关内容