axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From iksrazal <iksra...@gmail.com>
Subject Re: [Axis2] Databinding
Date Wed, 04 Jan 2006 10:54:22 GMT
Hi Steve, 

Using axis2 v.93 I also have a complex object using long, and I tried setting 
one of its params to System.currentTimeMillis() . I couldn't reproduce the 
problem. 

The other curious thing I see in the stack trace, is BigInteger.  Nothing I 
see in your complex object maps to that: 

http://xmlbeans.apache.org/docs/2.0.0/guide/conXMLBeansSupportBuiltInSchemaTypes.html

I've seen some people on the list have problems with anyType, and  
apachesoap:Vector I'm not sure about. You may try removing everything but 
your long and see if you still have the problem. 

Lastly, you don't mention what type of binding style you are using - wrapped 
document lteral, rpc literal or rpc encoded. Looking at your complex object, 
you may be using soap encoded. I don't know what impact that would have with 
xmlbeans, but axis2 support for rpc encoded IIRC is perhaps not up to par 
with doc /lit. 

FWIW, here's an example of a wsdl I'm using successfully with axis2. It uses 
extension base also, but uses int instead of long: 

<?xml version="1.0" encoding="UTF-8"?>

<definitions name="SWASmartService" targetNamespace="http://swaSmartNS" 
xmlns:tns="http://swaSmartNS" xmlns="http://schemas.xmlsoap.org/wsdl/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:ns2="http://swaSmartNS/types">
  <types>
    <schema targetNamespace="http://swaSmartNS/types" 
xmlns:tns="http://swaSmartNS/types" 
xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns="http://www.w3.org/2001/XMLSchema">
      <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
      <complexType name="ReturnWebBase">
        <sequence>
          <element name="errorMessage" type="xsd:string"/>
          <element name="successErrorCode" type="xsd:int"/>
        </sequence>
      </complexType>
      <element name="smartLogin">
        <complexType>
          <sequence>
            <element name="user_name" type="xsd:string"/>
            <element name="user_password" type="xsd:string"/>
          </sequence>
        </complexType>
      </element>
      <element name="smartLoginResponse">
        <complexType>
          <complexContent>
            <extension base="tns:ReturnWebBase">
              <sequence>
                <element name="soap_session_id" type="xsd:string"/>
                <element name="web_user_name" type="xsd:string"/>
              </sequence>
            </extension>
          </complexContent>
        </complexType>
      </element>
      <element name="testService">
        <complexType>
          <sequence>
            <element name="soap_session_id" type="xsd:string"/>
            <element name="web_user_name" type="xsd:string"/>
          </sequence>
        </complexType>
      </element>
      <element name="testServiceResponse">
        <complexType>
          <complexContent>
            <extension base="tns:ReturnWebBase">
              <sequence>
                <element name="testId" type="xsd:long"/>
              </sequence>
            </extension>
          </complexContent>
        </complexType>
      </element>
      <element name="informarTecnicos">
        <complexType>
          <sequence>
            <element name="soap_session_id" type="xsd:string"/>
            <element name="web_user_name" type="xsd:string"/>
            <element name="Matricula" type="xsd:string"/>
            <element name="RATIntervalInicio" type="xsd:long"/>
            <element name="RATIntervalFinal" type="xsd:long"/>
          </sequence>
        </complexType>
      </element>
      <complexType name="ArrayOfItemSnPn">
        <sequence>
          <element minOccurs="0" maxOccurs="unbounded" name="ItemSnPn" 
nillable="false" type="tns:ItemSnPn" />
        </sequence>
      </complexType>
      <complexType name="ItemSnPn">
        <sequence>
          <element minOccurs="1" maxOccurs="1" name="pn" type="long" />
          <element minOccurs="1" maxOccurs="1" name="sn" type="long" />
        </sequence>
      </complexType>
      <element name="informarListaEquipamento">
        <complexType>
          <sequence>
            <element name="soap_session_id" type="xsd:string"/>
            <element name="web_user_name" type="xsd:string"/>
            <element name="Matricula" type="xsd:string"/>
            <element name="ItemSnPn" minOccurs="0" maxOccurs="1" 
type="tns:ArrayOfItemSnPn"/>
          </sequence>
        </complexType>
      </element>
      <element name="informarEquipamentoRetirado">
        <complexType>
          <sequence>
            <element name="soap_session_id" type="xsd:string"/>
            <element name="web_user_name" type="xsd:string"/>
            <element name="OS" type="xsd:string"/>
            <element name="modemRetirado" type="xsd:string"/>
          </sequence>
        </complexType>
      </element>
      <element name="informarServicoList">
        <complexType>
          <sequence>
            <element name="soap_session_id" type="xsd:string"/>
            <element name="web_user_name" type="xsd:string"/>
            <element name="Matricula" type="xsd:string"/>
            <element name="RATList"  minOccurs="0" maxOccurs="unbounded" 
type="xsd:string"/>
          </sequence>
        </complexType>
      </element>
      <element name="ReturnWebBaseResponse" type="ns2:ReturnWebBase"/>
</schema></types>
  <message name="SWASmartEndpoint_informarListaEquipamento">
     <part name="parameters" element="ns2:informarListaEquipamento"/>
  </message>
  <message name="SWASmartEndpoint_informarListaEquipamentoResponse">
    <part name="result" element="ns2:ReturnWebBaseResponse"/>
  </message>
  <message name="SWASmartEndpoint_informarServicoList">
     <part name="parameters" element="ns2:informarServicoList"/>
  </message>
  <message name="SWASmartEndpoint_informarServicoListResponse">
    <part name="result" element="ns2:ReturnWebBaseResponse"/>
  </message>
  <message name="SWASmartEndpoint_informarEquipamentoRetirado">
     <part name="parameters" element="ns2:informarEquipamentoRetirado"/>
  </message>
  <message name="SWASmartEndpoint_informarEquipamentoRetiradoResponse">
    <part name="result" element="ns2:ReturnWebBaseResponse"/>
  </message>
  <message name="SWASmartEndpoint_informarTecnicos">
     <part name="parameters" element="ns2:informarTecnicos"/>
  </message>
  <message name="SWASmartEndpoint_informarTecnicosResponse">
    <part name="result" element="ns2:ReturnWebBaseResponse"/>
  </message>
  <message name="SWASmartEndpoint_testService">
     <part name="parameters" element="ns2:testService"/>
  </message>
  <message name="SWASmartEndpoint_testServiceResponse">
    <part name="result" element="ns2:testServiceResponse"/>
  </message>
  <message name="SWASmartEndpoint_smartLogin">
     <part name="parameters" element="ns2:smartLogin"/>
  </message>
  <message name="SWASmartEndpoint_smartLoginResponse">
    <part name="result" element="ns2:smartLoginResponse"/>
  </message>
  <portType name="SWASmartEndpoint">
    <operation name="informarListaEquipamento">
      <input message="tns:SWASmartEndpoint_informarListaEquipamento" 
name="SWASmartEndpoint_informarListaEquipamento"/>
      <output message="tns:SWASmartEndpoint_informarListaEquipamentoResponse" 
name="SWASmartEndpoint_informarListaEquipamentoResponse"/>
    </operation>
    <operation name="informarEquipamentoRetirado">
      <input message="tns:SWASmartEndpoint_informarEquipamentoRetirado" 
name="SWASmartEndpoint_informarEquipamentoRetirado"/>
      <output 
message="tns:SWASmartEndpoint_informarEquipamentoRetiradoResponse" 
name="SWASmartEndpoint_informarEquipamentoRetiradoResponse"/>
    </operation>
    <operation name="informarServicoList">
      <input message="tns:SWASmartEndpoint_informarServicoList" 
name="SWASmartEndpoint_informarServicoList"/>
      <output message="tns:SWASmartEndpoint_informarServicoListResponse" 
name="SWASmartEndpoint_informarServicoListResponse"/>
    </operation>
    <operation name="informarTecnicos">
      <input message="tns:SWASmartEndpoint_informarTecnicos" 
name="SWASmartEndpoint_informarTecnicos"/>
      <output message="tns:SWASmartEndpoint_informarTecnicosResponse" 
name="SWASmartEndpoint_informarTecnicosResponse"/>
    </operation>
    <operation name="testService">
      <input message="tns:SWASmartEndpoint_testService" 
name="SWASmartEndpoint_testService"/>
      <output message="tns:SWASmartEndpoint_testServiceResponse" 
name="SWASmartEndpoint_testServiceResponse"/>
    </operation>
    <operation name="smartLogin">
      <input message="tns:SWASmartEndpoint_smartLogin" 
name="SWASmartEndpoint_smartLogin"/>
      <output message="tns:SWASmartEndpoint_smartLoginResponse" 
name="SWASmartEndpoint_smartLoginResponse"/>
    </operation>
  </portType>
  <binding name="SWASmartEndpointBinding" type="tns:SWASmartEndpoint">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" 
style="document"/>
    <operation name="informarListaEquipamento">
      <soap:operation soapAction="informarListaEquipamento"/>
      <input name="SWASmartEndpoint_informarListaEquipamento">
        <soap:body use="literal"/>
      </input>
      <output name="SWASmartEndpoint_informarListaEquipamentoResponse">
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="informarEquipamentoRetirado">
      <soap:operation soapAction="informarEquipamentoRetirado"/>
      <input name="SWASmartEndpoint_informarEquipamentoRetirado">
        <soap:body use="literal"/>
      </input>
      <output name="SWASmartEndpoint_informarEquipamentoRetiradoResponse">
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="informarServicoList">
      <soap:operation soapAction="informarServicoList"/>
      <input name="SWASmartEndpoint_informarServicoList">
        <soap:body use="literal"/>
      </input>
      <output name="SWASmartEndpoint_informarServicoListResponse">
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="informarTecnicos">
      <soap:operation soapAction="informarTecnicos"/>
      <input name="SWASmartEndpoint_informarTecnicos">
        <soap:body use="literal"/>
      </input>
      <output name="SWASmartEndpoint_informarTecnicosResponse">
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="smartLogin">
      <soap:operation soapAction="smartLogin"/>
      <input name="SWASmartEndpoint_smartLogin">
        <soap:body use="literal"/>
      </input>
      <output name="SWASmartEndpoint_smartLoginResponse">
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="testService">
      <soap:operation soapAction="testService"/>
      <input name="SWASmartEndpoint_testService">
        <soap:body use="literal"/>
      </input>
      <output name="SWASmartEndpoint_testServiceResponse">
        <soap:body use="literal"/>
      </output>
    </operation>
  </binding>
  <service name="SWASmartService">
    <port name="SWASmartEndpointPort" binding="tns:SWASmartEndpointBinding">
      <soap:address 
location="http://localhost:8080/axis2/services/SWASmartEndpoint"/></port></service></definitions>

HTH,
iksrazal
http://www.braziloutsource.com/

Em Terça 03 Janeiro 2006 15:20, o Eran Chinthaka escreveu:
> Forwarding with correct prefix.
>
> -------- Original Message --------
> Subject: 	Databinding
> Date: 	Tue, 03 Jan 2006 12:01:27 -0500
> From: 	Steve Molloy <smolloy@convera.com>
> Reply-To: 	axis-user@ws.apache.org
> To: 	axis-user@ws.apache.org
>
>
>
> Hi,
>
> 	I'm new to Axis 2 (0.93) and am trying to convert my Axis 1 services to
> it. I'm having a problem with the databindings generated and was
> wondering if anyone ran into this and, much more importantly, if anyone
> had a solution... My messages use the following types:
>
> <complexType name="Item">
> 	<sequence>
> 		<element name="id" nillable="true" type="xsd:anyType"/>
> 		<element name="latest" nillable="true" type="tns1:Version"/>
> 		<element name="modificationStamp" type="xsd:long"/>
> 		<element name="versions" nillable="true" type="apachesoap:Vector"/>
> 	</sequence>
> </complexType>
> <complexType name="BatchTest">
> 	<complexContent>
> 		<extension base="tns1:Item">
> 			<sequence>
> 				<element name="info" nillable="true" type="tns1:BatchTestInfo"/>
> 			</sequence>
> 		</extension>
> 	</complexContent>
> </complexType>
>
> While the generated (WSDL2Java using xmlbeans) java code seems fine,
> when I actually try to use it, the server throws a
> XmlValueOutOfRangeException because it gets into XmlObjectBase code
> instead of XmlLong when trying to set the modificationTimeStamp field
> with a long (yes, System.currentTimeMillis()). StackTrace:
>
> ...
> Caused by: org.apache.xmlbeans.impl.values.XmlValueNotSupportedException
>       at
> org.apache.xmlbeans.impl.values.XmlObjectBase.set_BigDecimal(XmlObjectBase.
>java:1989) at
> org.apache.xmlbeans.impl.values.XmlObjectBase.set(XmlObjectBase.java:1608)
> at
> org.apache.xmlbeans.impl.values.XmlObjectBase.set_BigInteger(XmlObjectBase.
>java:1987) at
> org.apache.xmlbeans.impl.values.XmlObjectBase.set_long(XmlObjectBase.java:1
>969) at
> org.apache.xmlbeans.impl.values.XmlObjectBase.set(XmlObjectBase.java:1596)
> at
> org.apache.xmlbeans.impl.values.XmlObjectBase.setLongValue(XmlObjectBase.ja
>va:1537) at
> com.convera.taw.qa.ws.databinding.com.convera.taw.qa.ws.data.impl.ItemImpl.
>setModificationStamp(ItemImpl.java:244) ... 28 more
>
> Am I doing anything wrong here?
>
> Thanks,
> Steve

-- 

Mime
View raw message