GUAOSHITAIDU 2011-09-17
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的详细信息,或者下载地址请点这里