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 :

[Axis]gestion des erreurs


Sujet :

Services Web Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 71
    Points : 48
    Points
    48
    Par défaut [Axis]gestion des erreurs
    Je crée un service web via axis.
    Dans le cas ou l'une des valeurs que je récupère est à null, je voudrais afficher un message d'erreur.
    Je ne sais pas comment faire et ne trouve pas de doc sur le sujet

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 36
    Points : 33
    Points
    33
    Par défaut
    bonjour antigone,

    J'ai du mal a comprendre si ton probleme se trouve lorsque ton web service récupère un null et tu voudrais qu'il renvoi une erreur à ton client ou si c'est lorsque ton client recoit null de ton web service?

    Aph'

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    en fait c lorsque mon service récupère un null, je voudrais afficher que le service renvoie un message.
    J'ai vu qu'on doit utiliser fault, mais je ne trouves pas sur le web des détail ou un exemple complet

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 36
    Points : 33
    Points
    33
    Par défaut
    Il te faut générer une Axis Fault.

    axisfault API

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par antigone Voir le message
    en fait c lorsque mon service récupère un null, je voudrais afficher que le service renvoie un message.
    J'ai vu qu'on doit utiliser fault, mais je ne trouves pas sur le web des détail ou un exemple complet
    tu veu le message qd le service recupere une valeur null ou lorsque il y'a exception..?

    pour une valeur null, il suffit de faire un if ou un try catch quand tu l'appelles..ou tu veux récuperer le message des exceptions axis produites dans le serveur ???

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    oui je veux le message qd le service recupere une valeur null,
    je vais tester avec fault,
    j'ai ajouté dans mon wsdl :

    <wsdl:operation name="op" parameterOrder="id">

    <wsdl:input message="impl:opRequest" name="opRequest"/>

    <wsdl:output message="impl:opResponse" name="opResponse"/>

    <wsdl:fault message="impl:opFault" name="opFault"/>

    </wsdl:operation>

    et
    <wsdl:operation name="op">

    <wsdlsoap:operation soapAction="http://toto.com"/>

    <wsdl:input name="opRequest">

    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://toto.com" use="encoded"/>

    </wsdl:input>

    <wsdl:output name="opResponse">

    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://toto.com" use="encoded"/>

    </wsdl:output>

    <wsdl:fault name="opFault">

    <wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://toto.com" use="encoded"/>

    </wsdl:fault>


    </wsdl:operation>
    Je génère bien ma classe opFault,

    dans mon web service je sais qu'il faut que je fasse un catch (opFault)

    mais je ne sais pas quoi mettre dans l'implémentation de la classe générée opFault.java.
    c'est pour ca que j'essai de trouver un exemple complet

    Je vais essayer de voir avec la javadoc
    Je vais esssayer de m'en sortir avec la javadoc.

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    fault c'est une exception qui peu etre lancé par ta méthode..je ne comprend toujours pas ce que tu veux faire..pq vouloir récuperer une valeur null.quand c'est le s ervice te renvoi un objet tu as une erreur ..?

    le serveur te renvoi la valeur nulle, donc pas besoin de modifier le wsdl; c'est du coté client que tu souhaites afficher le message.;enfin si je comprend bien ..

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    en fait c dans mes spécifications, mon service au lieu de de retourner une valeur null, doit renvoyer un message explicite.
    Ca n'est pas moi qui développe le client

  9. #9
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par antigone Voir le message
    en fait c dans mes spécifications, mon service au lieu de de retourner une valeur null, doit renvoyer un message explicite.
    Ca n'est pas moi qui développe le client
    ok donc là, soit tu utilise l'exception axisfault soit, c'est mieux de créer ta propore classe d'expetion avec les messages que tu veux..tu declare son type dans le wsdl ou le xsd et tu l'ajoute à l'operation..
    dans le code de ta methode au lieu de retourner une valeur null, tu fais throw TonExeption..

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    Bonjour, je tente tjrs d'implémenter un service web
    Je n'arrive pas a gérer mon exception.
    dans le cas ou je récupère une valeur (id) à nulle, je voudrais afficher le message d'erreur 'id can not be found'.
    J'essai d'utiliser AxisFault,


    dans mon wsdl :

    <wsdl:operation name="op" parameterOrder="id">

    <wsdl:input message="impl:opRequest" name="opRequest"/>

    <wsdl:output message="impl:opResponse" name="opResponse"/>

    <wsdl:fault message="impl:opFault" name="opFault"/>

    </wsdl:operation>
    et

    <wsdl:portType name="monService">

    <wsdl:operation name="op" parameterOrder="p1">

    <wsdl:input message="impl:opRequest" name="opRequest"/>

    <wsdl:output message="impl:opResponse" name="opResponse"/>

    <wsdl:fault message="impl:opFault" name="opFault"/>

    </wsdl:operation>

    </wsdl:portType>
    Et

    <wsdl:binding name="monServiceSoapBinding" type="impl:monService">
    <wsdl:operation name="op">

    <wsdlsoap:operation soapAction="http://toto.com"/>

    <wsdl:input name="opRequest">

    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://toto.com" use="encoded"/>

    </wsdl:input>

    <wsdl:output name="opResponse">

    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://toto.com" use="encoded"/>

    </wsdl:output>

    <wsdl:fault name="opFault">

    <wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://toto.com" use="encoded"/>

    </wsdl:fault>

    </wsdl:operation>
    </wsdl:binding>

    Je génère bien ma classe opFault,




    public class opFaultextends org.apache.axis.AxisFault {
    public java.lang.String message;
    public java.lang.String getMessage() {
    return this.message;
    }

    public opFault() {
    }

    public opFault(java.lang.String message) {
    this.message = message;
    }
    }
    dans mon web service je sais qu'il faut que je fasse un throw (opFault)
    dans mon implémentation j'ajoute donc

    //cas ou j'ai une valeur a nulle)
    else else throw new com.toto.opFault("id can not be found");

    dans le cas ou j'ai mon id à nulle, je voudrais afficher le message d'erreur id can not be found.

    hélas , l'erreur qui s'affiche lorsque je provoque mon exception est

    AxisFault
    faultCode: {http://xml.apache.org/axis/}Server.generalException
    faultString:
    faultActor: null
    faultDetail:
    exceptionName: com.toto.opFault
    stackTrace: AxisFault
    faultCode: {http://xml.apache.org/axis/}Server.generalException
    faultString:
    faultActor: null
    faultDetail:
    exceptionName: com.toto.opFault


    at com.toto.monWebService.op(monWebService.java:166)
    at com.toto.monServiceSoapBindingImpl.op(MonServiceSoapBindingImpl.java:23)
    at com.toto.MonServiceSoapBindingSkeleton.op(MonServiceSoapBindingSkeleton.java:67)
    at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    ..........
    ...........


    Qu'est ce qui ne va pas?
    mon wsdl?
    dois je ajouter qq chose à ma classe opFault?

Discussions similaires

  1. [FB] Gestion des erreurs et application francophone
    Par Benjamin GAGNEUX dans le forum Installation
    Réponses: 10
    Dernier message: 20/05/2006, 14h54
  2. [struts][Datasource]Gestion des erreurs
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 15/09/2004, 16h51
  3. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20
  4. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 17h19
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

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