Axis: Date e Calendar

1 resposta
pcalcado

Oi,

Tenho um serviço no Axis que está retornando um xsd:date, e quero que ele retorne um xsd:dateTime. O retorno:

<ns1:getVpnSpecialNumbersReturn xsi:type="soapenc:Array" soapenc:arrayType="ns1:SpecialNumber[3]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
    <item>
     <creationTime xsi:type="xsd:date">2005-01-03</creationTime>
     <number xsi:type="xsd:string">12</number>
     <prefix xsi:type="xsd:boolean">true</prefix>
     <specialNumberGuid xsi:type="xsd:string">944CFFDB-6B48-7B3A-35F5-E33E7B499DC8</specialNumberGuid>
     <vpnGuid xsi:type="xsd:string" xsi:nil="true"/>
    </item>
    <item>
     <creationTime xsi:type="xsd:date">2005-01-03</creationTime>
     <number xsi:type="xsd:string">1743</number>
     <prefix xsi:type="xsd:boolean">true</prefix>
     <specialNumberGuid xsi:type="xsd:string">8290096B-AB86-AC48-FB01-6621ED77CDB0</specialNumberGuid>
     <vpnGuid xsi:type="xsd:string" xsi:nil="true"/>
    </item>
    <item>
     <creationTime xsi:type="xsd:date">2005-01-03</creationTime>
     <number xsi:type="xsd:string">1773</number>
     <prefix xsi:type="xsd:boolean">true</prefix>
     <specialNumberGuid xsi:type="xsd:string">599B4C30-B8D3-4536-EDAE-D7989C2AA5C0</specialNumberGuid>
     <vpnGuid xsi:type="xsd:string" xsi:nil="true"/>
    </item>
   </ns1:getVpnSpecialNumbersReturn>

Um outro serviço que retorna o mesmo objeto (mas sem array) retorna:

<ns1:getSpecialNumberReturn xsi:type="ns1:SpecialNumber">
    <ns1:creationTime xsi:type="xsd:dateTime">2005-01-03T18:08:41.000Z</ns1:creationTime>
    <ns1:number xsi:type="xsd:string">11</ns1:number>
    <ns1:prefix xsi:type="xsd:boolean">true</ns1:prefix>
    <ns1:specialNumberGuid xsi:type="xsd:string">32572072-124A-774D-5B44-6002DD91E7BF</ns1:specialNumberGuid>
    <ns1:vpnGuid xsi:type="xsd:string">CFB6D4A5-C7D7-0F90-8F3D-37417C40F4F7</ns1:vpnGuid>
   </ns1:getSpecialNumberReturn>

Não tenho idéia de onde posso alterar isso. O wsdl está assim para o que não funciona:

<wsdl:operation name="getVpnSpecialNumbers">
<wsdlsoap:operation soapAction=""/>

	<wsdl:input name="getVpnSpecialNumbersRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://abcd.webservice.abcd.com" use="encoded"/>
</wsdl:input>

	<wsdl:output name="getVpnSpecialNumbersResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://abcd.webservice.abcd.com" use="encoded"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>

E assim para o que funciona:

<wsdl:operation name="getSpecialNumber" parameterOrder="specialNumberGuid">
<wsdl:input message="impl:getSpecialNumberRequest" name="getSpecialNumberRequest"/>
<wsdl:output message="impl:getSpecialNumberResponse" name="getSpecialNumberResponse"/>
<wsdl:fault message="impl:OvpnBusinessException" name="OvpnBusinessException"/>
</wsdl:operation>

Tudo isso foi gerado pelo Axis quando acrescentei métodos na classe de implementação do WebService.

Alguém?

[]s

1 Resposta

pcalcado

Resolvi.

Alterei o tipo de dado da classe que implementa isso no servidor para Calendar, ambas as operações funcionam.

Entretanto, isso não me satisfez :frowning: As outras classes que envolvem tempo possuem Dates e não Calendars, e mesmo assim retornam xsd:dateTime

[]s

Criado 3 de janeiro de 2005
Ultima resposta 3 de jan. de 2005
Respostas 1
Participantes 1