IntelliJ IDEA 通过wsdl生成Java工程需要谨慎的几个问题
发布时间:2021-12-22 12:55:21 所属栏目:PHP教程 来源:互联网
导读:IntelliJ IDEA 是一个Java的可视化开发 工具,可以很方便的将一个wsdl生成一个java工程。但是在生成过程中会出现一些问题: complexType name=HelloWorldRequestType element name=Message nillable=true type=xsd:string/ element name=bParam nillable=true
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,则类型描述一定要对应。 ![]() (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |