IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Java Discussion :

Erreur sur réponse SOAP d'objets de type personnalisé


Sujet :

Services Web Java

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 41
    Points : 26
    Points
    26
    Par défaut Erreur sur réponse SOAP d'objets de type personnalisé
    Bonjour..

    Je bloque depuis des jours sur un problème vraiment gênant.. Etant nouvelle dans les web services et plus ou moins dans java aussi....

    J'ai créé un projet sous Eclipse JEE avec Tomcat et Axis.

    J'ai des fonctions accessible via l'exterieur (que j'apelle avec SOAPUI depuis le même pc) le soucis est que j'ai besoin qu'une fonction me renvoie un message SOAP avec une certaine structure telle que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <?xml version="1.0" encoding="utf-8"?>
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
      <soap12:Body>
        <GetAvailableResultsResponse xmlns="http://....">
          <GetAvailableResultsResult>
            <PendingResultsItem>
              <Search_id>int</Search_id>
              <Timestamp>dateTime</Timestamp>
              <Partid>string</Partid>
              <Price>string</Price>
              <Currency>string</Currency>
              <Uom>string</Uom>
              <Description>string</Description>
              <Supplier>string</Supplier>
              <Searchstring>string</Searchstring>
              <Returned>boolean</Returned>
              <Searchorder>int</Searchorder>
              <Callingsite_id>int</Callingsite_id>
              <Internalpartid>string</Internalpartid>
              <Detaillink>string</Detaillink>
              <Basketlink>string</Basketlink>
            </PendingResultsItem>
            <PendingResultsItem>
              <Search_id>int</Search_id>
              <Timestamp>dateTime</Timestamp>
              <Partid>string</Partid>
              <Price>string</Price>
              <Currency>string</Currency>
              <Uom>string</Uom>
              <Description>string</Description>
              <Supplier>string</Supplier>
              <Searchstring>string</Searchstring>
              <Returned>boolean</Returned>
              <Searchorder>int</Searchorder>
              <Callingsite_id>int</Callingsite_id>
              <Internalpartid>string</Internalpartid>
              <Detaillink>string</Detaillink>
              <Basketlink>string</Basketlink>
            </PendingResultsItem>
          </GetAvailableResultsResult>
        </GetAvailableResultsResponse>
      </soap12:Body>
    </soap12:Envelope>
    Donc je renvoi une List mais il faudrait idéalement une list de Produits (Produits étant une class donc les attribus collent parfaitement au format SOAP énoncé au dessus) ... probleme... Quand je renvoi une List de Produit j'obtiens cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Premature end of file. Message: ; nested exception is: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Premature end of file.
    Apres des recherches il semblerait que je fasse appel a un InputSource qui clos l'objet et que je tente d'y acceder a nouveau... Je ne vois pas trop ou ni comment changer ca.

    Voici le code tout simple de ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public List<Product> GetTest(int SearchID, String SharedSecret) 
    {
    	List<Product> prods = new ArrayList<Product>();
     
            Product p1 = new Product();
            Product p2 = new Product();
     
            prods.add(p1);
            prods.add(p2);
     
    	return prods;
     
    }
    Avez vous une idée de la solution?

    Merci infiniment

  2. #2
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Voici une indication supplémentaire venant de la console :
    WARNING: Exception:
    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    faultSubcode:
    faultString: java.io.IOException: No serializer found for class com.seleweb.Product in registry org.apache.axis.encoding.TypeMappingDelegate@90ace79

    Pour info voila ma classe Product :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    package com.seleweb;
     
    import java.io.Serializable;
     
    import javax.xml.bind.annotation.XmlRootElement;
     
    import com.google.gson.Gson;
     
    public class Product implements Serializable {
    	private static final long serialVersionUID = 1L;
     
    	public int Search_id;
    	public String dateTime;
    	public double Price;
    	public String Description;
    	public String Partid;
    	public String Currency;
    	public String Supplier;
    	public String Uom;
    	public String Searchstring;
    	public boolean Returned;
    	public int Searchorder;
    	public int Callingsiteid;
    	public String Internalpartid;
    	public String Detaillink;
    	public String Basketlink;
     
     
    ... Accesseur et Mutateurs ensuite

Discussions similaires

  1. Probleme de compilation erreur sur creation de l'objet
    Par fainardi69 dans le forum Langage
    Réponses: 3
    Dernier message: 11/07/2015, 23h19
  2. Réponses: 4
    Dernier message: 02/08/2010, 09h21
  3. Erreur sur inclusion types.h avec cygwin
    Par Bayard dans le forum Réseau
    Réponses: 12
    Dernier message: 12/11/2006, 16h48
  4. erreur sur le type de champ
    Par samsso2006 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 02/11/2006, 10h41
  5. Erreur sur récupération type d'input
    Par michaelbob dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/08/2006, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo