Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Java > Serveurs d'application Java & Java EE > Autres

Autres Vos questions sur les autres serveurs d'application Java.

Réponse
 
Outils de la discussion
Vieux 18/07/2008, 09h59   #1 (permalink)
Membre du Club
 
Avatar de jmnicolas
 
Date d'inscription: juin 2007
Localisation: France : Mulhouse
Âge: 30
Messages: 89
Par défaut [Axis2] Erreur avec un tableau de tableaux

Bonjour,

j'ai un soucis étrange avec Axis2 : je l'approvisionne (par l'intermédiaire d'un web service) avec un objet qui a notamment comme variable d'instance un tableau de tableaux de string.

Quand j'essaye de récupérer cet objet (toujours par l'intermédiaire d'un web service) ça me lance une exception "ArrayOutOfBoundException".

Pareil, si j'essaye de parcourir le tableau avant de le retourner, ça lance une exception.

Par contre si je crée un objet vide, ou si je place la variable du tableau à null, pas de soucis le web service me retourne bien mon objet.

J'ai vérifié le tableau qui est envoyé à Axis2, il est tout à fait conforme : il contient 2 colonnes, toutes sont approvisionnées (voir ci-dessous).
A noter que les ::: sont ajoutés par moi lors de l'affichage afin de gagner en lisibilité.

Code :
5/1:::28
3/4:::15
3/5:::16
5/4:::31
7/3:::34
3/3:::14
4/3:::24
5/3:::30
7/2:::33
3/1:::12
7/4:::35
1/5:::5
4/4:::25
3/6:::17
1/9:::9
1/4:::4
1/7:::7
3/9:::20
3/10:::21
1/10:::10
1/11:::11
1/1:::1
1/2:::2
1/3:::3
3/2:::13
4/2:::23
5/2:::29
1/6:::6
4/5:::26
4/6:::27
3/8:::19
1/8:::8
3/7:::18
7/1:::32
4/1:::22
J'ai regardé le wsdl (généré avec le plugin eclipse fourni par Axis) mais je ne vois rien d'anormal :

Code :
<xs:element maxOccurs="unbounded" minOccurs="0" name="svParc" nillable="true" type="xs:string"/>
Le wsdl complet (le nom du tableau de tableaux est svParc) :

Code :
<wsdl:definitions targetNamespace="http://serv.jmn.stage.rttb">
<wsdl:documentation>Serveur</wsdl:documentation>
&#8722;
<wsdl:types>
&#8722;
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://serv.jmn.stage.rttb">
<xs:import namespace="http://positions.stage.rttb/xsd"/>
&#8722;
<xs:element name="enregistrerPF">
&#8722;
<xs:complexType>
&#8722;
<xs:sequence>
<xs:element minOccurs="0" name="pf" nillable="true" type="ax22:PositionFlotte"/>
</xs:sequence>
</xs:complexType>
</xs:element>
&#8722;
<xs:element name="enregistrerPFResponse">
&#8722;
<xs:complexType>
&#8722;
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
&#8722;
<xs:element name="passageArret">
&#8722;
<xs:complexType>
&#8722;
<xs:sequence>
<xs:element minOccurs="0" name="pCodArret" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
&#8722;
<xs:element name="passageArretResponse">
&#8722;
<xs:complexType>
&#8722;
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
&#8722;
<xs:element name="positionParc">
&#8722;
<xs:complexType>
&#8722;
<xs:sequence>
<xs:element minOccurs="0" name="pNumParc" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
&#8722;
<xs:element name="positionParcResponse">
&#8722;
<xs:complexType>
&#8722;
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="ax22:Arret"/>
</xs:sequence>
</xs:complexType>
</xs:element>
&#8722;
<xs:element name="positionSv">
&#8722;
<xs:complexType>
&#8722;
<xs:sequence>
<xs:element minOccurs="0" name="pSv" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
&#8722;
<xs:element name="positionSvResponse">
&#8722;
<xs:complexType>
&#8722;
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="ax22:Arret"/>
</xs:sequence>
</xs:complexType>
</xs:element>
&#8722;
<xs:element name="getPFResponse">
&#8722;
<xs:complexType>
&#8722;
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="ax22:PositionFlotte"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
&#8722;
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://positions.stage.rttb/xsd">
&#8722;
<xs:complexType name="PositionFlotte">
&#8722;
<xs:sequence>
<xs:element minOccurs="0" name="heureActuelle" type="xs:int"/>
<xs:element minOccurs="0" name="jour" nillable="true" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="positionDesBus" nillable="true" type="ax21:PositionDunBus"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="svParc" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
&#8722;
<xs:complexType name="PositionDunBus">
&#8722;
<xs:sequence>
<xs:element minOccurs="0" name="codeVehicule" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="heureActuelle" type="xs:int"/>
<xs:element minOccurs="0" name="jour" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="numeroParc" nillable="true" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="positionSuivantes" nillable="true" type="ax21:Arret"/>
</xs:sequence>
</xs:complexType>
&#8722;
<xs:complexType name="Arret">
&#8722;
<xs:sequence>
<xs:element minOccurs="0" name="codArret" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="codGirouette" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="horaire" type="xs:int"/>
<xs:element minOccurs="0" name="libelSae" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="nuLiCo" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="parc" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="vehicule" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
&#8722;
<wsdl:message name="positionParcRequest">
<wsdl:part name="parameters" element="ns:positionParc"/>
</wsdl:message>
&#8722;
<wsdl:message name="positionParcResponse">
<wsdl:part name="parameters" element="ns:positionParcResponse"/>
</wsdl:message>
<wsdl:message name="getPFRequest"/>
&#8722;
<wsdl:message name="getPFResponse">
<wsdl:part name="parameters" element="ns:getPFResponse"/>
</wsdl:message>
&#8722;
<wsdl:message name="passageArretRequest">
<wsdl:part name="parameters" element="ns:passageArret"/>
</wsdl:message>
&#8722;
<wsdl:message name="passageArretResponse">
<wsdl:part name="parameters" element="ns:passageArretResponse"/>
</wsdl:message>
&#8722;
<wsdl:message name="enregistrerPFRequest">
<wsdl:part name="parameters" element="ns:enregistrerPF"/>
</wsdl:message>
&#8722;
<wsdl:message name="enregistrerPFResponse">
<wsdl:part name="parameters" element="ns:enregistrerPFResponse"/>
</wsdl:message>
&#8722;
<wsdl:message name="positionSvRequest">
<wsdl:part name="parameters" element="ns:positionSv"/>
</wsdl:message>
&#8722;
<wsdl:message name="positionSvResponse">
<wsdl:part name="parameters" element="ns:positionSvResponse"/>
</wsdl:message>
&#8722;
<wsdl:portType name="ServeurPortType">
&#8722;
<wsdl:operation name="positionParc">
<wsdl:input message="ns:positionParcRequest" wsaw:Action="urn:positionParc"/>
<wsdl:output message="ns:positionParcResponse" wsaw:Action="urn:positionParcResponse"/>
</wsdl:operation>
&#8722;
<wsdl:operation name="getPF">
<wsdl:input message="ns:getPFRequest" wsaw:Action="urn:getPF"/>
<wsdl:output message="ns:getPFResponse" wsaw:Action="urn:getPFResponse"/>
</wsdl:operation>
&#8722;
<wsdl:operation name="passageArret">
<wsdl:input message="ns:passageArretRequest" wsaw:Action="urn:passageArret"/>
<wsdl:output message="ns:passageArretResponse" wsaw:Action="urn:passageArretResponse"/>
</wsdl:operation>
&#8722;
<wsdl:operation name="enregistrerPF">
<wsdl:input message="ns:enregistrerPFRequest" wsaw:Action="urn:enregistrerPF"/>
<wsdl:output message="ns:enregistrerPFResponse" wsaw:Action="urn:enregistrerPFResponse"/>
</wsdl:operation>
&#8722;
<wsdl:operation name="positionSv">
<wsdl:input message="ns:positionSvRequest" wsaw:Action="urn:positionSv"/>
<wsdl:output message="ns:positionSvResponse" wsaw:Action="urn:positionSvResponse"/>
</wsdl:operation>
</wsdl:portType>
&#8722;
<wsdl:binding name="ServeurSoap11Binding" type="ns:ServeurPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
&#8722;
<wsdl:operation name="positionParc">
<soap:operation soapAction="urn:positionParc" style="document"/>
&#8722;
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
&#8722;
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
&#8722;
<wsdl:operation name="getPF">
<soap:operation soapAction="urn:getPF" style="document"/>
&#8722;
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
&#8722;
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
&#8722;
<wsdl:operation name="passageArret">
<soap:operation soapAction="urn:passageArret" style="document"/>
&#8722;
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
&#8722;
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
&#8722;
<wsdl:operation name="enregistrerPF">
<soap:operation soapAction="urn:enregistrerPF" style="document"/>
&#8722;
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
&#8722;
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
&#8722;
<wsdl:operation name="positionSv">
<soap:operation soapAction="urn:positionSv" style="document"/>
&#8722;
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
&#8722;
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
&#8722;
<wsdl:binding name="ServeurSoap12Binding" type="ns:ServeurPortType">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
&#8722;
<wsdl:operation name="positionParc">
<soap12:operation soapAction="urn:positionParc" style="document"/>
&#8722;
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
&#8722;
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
&#8722;
<wsdl:operation name="getPF">
<soap12:operation soapAction="urn:getPF" style="document"/>
&#8722;
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
&#8722;
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
&#8722;
<wsdl:operation name="passageArret">
<soap12:operation soapAction="urn:passageArret" style="document"/>
&#8722;
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
&#8722;
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
&#8722;
<wsdl:operation name="enregistrerPF">
<soap12:operation soapAction="urn:enregistrerPF" style="document"/>
&#8722;
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
&#8722;
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
&#8722;
<wsdl:operation name="positionSv">
<soap12:operation soapAction="urn:positionSv" style="document"/>
&#8722;
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
&#8722;
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
&#8722;
<wsdl:binding name="ServeurHttpBinding" type="ns:ServeurPortType">
<http:binding verb="POST"/>
&#8722;
<wsdl:operation name="positionParc">
<http:operation location="Serveur/positionParc"/>
&#8722;
<wsdl:input>
<mime:content type="text/xml" part="positionParc"/>
</wsdl:input>
&#8722;
<wsdl:output>
<mime:content type="text/xml" part="positionParc"/>
</wsdl:output>
</wsdl:operation>
&#8722;
<wsdl:operation name="getPF">
<http:operation location="Serveur/getPF"/>
&#8722;
<wsdl:input>
<mime:content type="text/xml" part="getPF"/>
</wsdl:input>
&#8722;
<wsdl:output>
<mime:content type="text/xml" part="getPF"/>
</wsdl:output>
</wsdl:operation>
&#8722;
<wsdl:operation name="passageArret">
<http:operation location="Serveur/passageArret"/>
&#8722;
<wsdl:input>
<mime:content type="text/xml" part="passageArret"/>
</wsdl:input>
&#8722;
<wsdl:output>
<mime:content type="text/xml" part="passageArret"/>
</wsdl:output>
</wsdl:operation>
&#8722;
<wsdl:operation name="enregistrerPF">
<http:operation location="Serveur/enregistrerPF"/>
&#8722;
<wsdl:input>
<mime:content type="text/xml" part="enregistrerPF"/>
</wsdl:input>
&#8722;
<wsdl:output>
<mime:content type="text/xml" part="enregistrerPF"/>
</wsdl:output>
</wsdl:operation>
&#8722;
<wsdl:operation name="positionSv">
<http:operation location="Serveur/positionSv"/>
&#8722;
<wsdl:input>
<mime:content type="text/xml" part="positionSv"/>
</wsdl:input>
&#8722;
<wsdl:output>
<mime:content type="text/xml" part="positionSv"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
&#8722;
<wsdl:service name="Serveur">
&#8722;
<wsdl:port name="ServeurHttpSoap11Endpoint" binding="ns:ServeurSoap11Binding">
<soap:address location="http://192.168.90.40:8080/axis2/services/Serveur.ServeurHttpSoap11Endpoint"/>
</wsdl:port>
&#8722;
<wsdl:port name="ServeurHttpSoap12Endpoint" binding="ns:ServeurSoap12Binding">
<soap12:address location="http://192.168.90.40:8080/axis2/services/Serveur.ServeurHttpSoap12Endpoint"/>
</wsdl:port>
&#8722;
<wsdl:port name="ServeurHttpEndpoint" binding="ns:ServeurHttpBinding">
<http:address location="http://192.168.90.40:8080/axis2/services/Serveur.ServeurHttpEndpoint"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Si quelqu'un a une idée
__________________
The greatest shortcoming of the human race is our inability to understand the exponential function. Albert A. Bartlett
jmnicolas est déconnecté   Envoyer un message privé Réponse avec citation
NEWS JAVAFAQsTUTORIELSJAVASEARCHSOURCESLIVRESOUTILS, EDI & APIECLIPSENETBEANSBLOGDISCUSSIONSTV

Réponse

Précédent   Forum des développeurs > Java > Serveurs d'application Java & Java EE > Autres



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide