soapenc:string和soapenc:int是什么类型?先看看下⾯的wsdl⽚段:
<complexType name="OrderRelationUpdateNotifyRequest">
<sequence>
<element name="recordSequenceId" nillable="true" type="soapenc:string"/>
<element name="userIdType" nillable="true" type="soapenc:int"/>update是什么
<element name="userId" nillable="true" type="soapenc:string"/>
<element name="serviceType" nillable="true" type="soapenc:string"/>
<element name="spId" nillable="true" type="soapenc:string"/>
<element name="productId" nillable="true" type="soapenc:string"/>
<element name="updateType" nillable="true" type="soapenc:int"/>
<element name="updateTime" nillable="true" type="soapenc:string"/>
<element name="updateDesc" nillable="true" type="soapenc:string"/>
<element name="linkId" nillable="true" type="soapenc:string"/>
<element name="content" nillable="true" type="soapenc:string"/>
<element name="effectiveDate" nillable="true" type="soapenc:string"/>
<element name="expireDate" nillable="true" type="soapenc:string"/>
<element name="time_stamp" nillable="true" type="soapenc:string"/>
<element name="encodeStr" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
看到没,⾥⾯有很多soapenc:string和soapenc:int类型的元素,开始没太注意。后来发现⽤wsdl2java⽣成的代码,都不是java.lang.String类型或int类型的。axis2对其加了⼀层壳。
⽐如上⾯的userId元素,如何在服务端获取呢?
org.apache.pes.soapencoding.String UserId0 = UserId();
String UserId = UserId0 != null ? String() : null;
log.debug("handle UserId=" + UserId);
⼜⽐如上⾯的updateType元素,在服务端这样获取:
org.apache.pes.soapencoding._int UpdateType0 = UpdateType();
Integer UpdateType = UpdateType0 != null ? _int() : null;
log.debug("handle UpdateType=" + UpdateType);
像这样的类型,在设置的时候也需要⼿动加壳,举两个例⼦:
static org.apache.pes.soapencoding.String toSoapString(String str) {
org.apache.pes.soapencoding.String enc = new org.apache.pes.soapencoding.String();
enc.setString(str);
return enc;
}
static org.apache.pes.soapencoding._int toSoapInt(int val) {
org.apache.pes.soapencoding._int enc = new org.apache.pes.soapencoding._int();
enc.set_int(val);
return enc;
}
使⽤起来是这样的:
rsp.setUserId(toSoapString("1234"));
rsp.setUpdateType(toSoapInt(1234));

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。