webservice--wsdl中含ref="s:schema"时处理的

本文探讨了在使用JAXB解析含ref=s:schema的WSDL文件时遇到的问题及解决方法。详细解释了错误原因,并提供了解决方案:用<s:anyminOccurs=2maxOccurs=2/>替代<s:elementref=s:schema/><s:any/>。

webservice--wsdl中含ref="s:schema"时处理的

dos窗口,在生成客户端代码的时候,出现了下图所示的错误:

java是通过JAXB解析wsdl文件的,出现这种错误的原因是:

  是JAXB目前还不支持ref 这种元素的解析

s:schema是types内最外层的元素,ref指向它,实际上相当于<s:any />

解决方案:

  <s:any minOccurs="2" maxOccurs="2"/>替代<s:element ref="s:schema"/><s:any />

  这两句话,其实是等价的。<s:element ref="s:schema"/>其实就是说这里可以用s:schema规定的任意一种元素类型来替代,<s:any />正是起      起到了这个作用。 

  <s:any minOccurs="2"maxOccurs="2"/>只不过是把两个<s:any />写成了一句罢了。

[hologram@localhost ~]$ curl http://10.25.142.5/OAWebSrv/services/OA_CreateAuthenticatorSrv?wsdl <?xml version="1.0" encoding="UTF-8"?> <definitions name="OA_CreateAuthenticatorSrv" targetNamespace="http://mss.cmcc.com/OA_CreateAuthenticatorSrv" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://mss.cmcc.com/OA_CreateAuthenticatorSrv" xmlns:ns1="http://schemas.oracle.com/bpel/extension" xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:client="http://mss.cmcc.com/OA_CreateAuthenticatorSrv" > <types> <xs:schema targetNamespace="http://mss.cmcc.com/MsgHeader" xmlns:tns="http://mss.cmcc.com/MsgHeader" elementFormDefault="qualified" attributeFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType name="MsgHeader"> <xs:sequence> <xs:element name="SOURCESYSTEMID" type="xs:string" nillable="true"/> <xs:element name="SOURCESYSTEMNAME" type="xs:string" nillable="true"/> <xs:element name="USERID" type="xs:string" nillable="true"/> <xs:element name="USERNAME" type="xs:string" nillable="true"/> <xs:element name="SUBMITDATE" type="xs:dateTime" nillable="true"/> <xs:element name="PAGE_SIZE" type="xs:decimal" nillable="true"/> <xs:element name="CURRENT_PAGE" type="xs:decimal" nillable="true"/> <xs:element name="TOTAL_RECORD" type="xs:decimal" nillable="true"/> <xs:element name="PROVINCE_CODE" nillable="true" type="xs:string"/> <xs:element name="ENVIRONMENT_NAME" nillable="true" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:schema> <schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://mss.cmcc.com/OA_CreateAuthenticatorSrv" xmlns:po="http://mss.cmcc.com/OA_CreateAuthenticatorSrv" xmlns:msg="http://mss.cmcc.com/MsgHeader" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="OA_CreateAuthenticatorSrvRequest" type="po:OA_CreateAuthenticatorSrvRequest"/> <element name="OA_CreateAuthenticatorSrvResponse" type="po:OA_CreateAuthenticatorSrvResponse"/> <complexType name="OA_CreateAuthenticatorSrvRequest"> <sequence> <element name="MsgHeader" type="msg:MsgHeader"/> <element name="USERID" type="string" nillable="true"/> <element name="STR_TYPE" type="string" nillable="true"/> <element name="REFERENCE1" type="string" nillable="true"/> <element name="REFERENCE2" type="string" nillable="true"/> <element name="REFERENCE3" type="string" nillable="true"/> <element name="REFERENCE4" type="string" nillable="true"/> <element name="REFERENCE5" type="string" nillable="true"/> </sequence> </complexType> <complexType name="OA_CreateAuthenticatorSrvResponse"> <sequence> <element name="ErrorFlag" type="string" nillable="true"/> <element name="ErrorMessage" type="string" nillable="true"/> <element name="Authenticator" type="string" nillable="true"/> <element name="TOTAL_RECORD" type="decimal" nillable="true"/> <element name="TOTAL_PAGE" type="decimal" nillable="true"/> <element name="PAGE_SIZE" type="decimal" nillable="true"/> <element name="CURRENT_PAGE" type="decimal" nillable="true"/> <element name="INSTANCE_ID" type="string" nillable="true"/> </sequence> </complexType> </schema> </types> <message name="OA_CreateAuthenticatorSrvRequestMessage"> <part name="payload" element="tns:OA_CreateAuthenticatorSrvRequest"/> </message> <message name="OA_CreateAuthenticatorSrvResponseMessage"> <part name="payload" element="tns:OA_CreateAuthenticatorSrvResponse"/> </message> <portType name="OA_CreateAuthenticatorSrv"> <operation name="process"> <input message="tns:OA_CreateAuthenticatorSrvRequestMessage"/> <output message="tns:OA_CreateAuthenticatorSrvResponseMessage"/> </operation> </portType> <binding name="OA_CreateAuthenticatorSrvBinding" type="tns:OA_CreateAuthenticatorSrv"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="process"> <soap:operation style="document" soapAction="process"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="OA_CreateAuthenticatorSrv"> <port name="OA_CreateAuthenticatorSrvPort" binding="tns:OA_CreateAuthenticatorSrvBinding"> <soap:address location="http://10.25.142.5/OAWebSrv/services/OA_CreateAuthenticatorSrv"/> </port> </service> <plnk:partnerLinkType name="OA_CreateAuthenticatorSrv"> <plnk:role name="OA_CreateAuthenticatorSrvProvider"> <plnk:portType name="tns:OA_CreateAuthenticatorSrv"/> </plnk:role> </plnk:partnerLinkType> </definitions> 我的一个webservice接口调用如上,能不能帮我生成一个curl调用的结果?
最新发布
11-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值