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 :

InvocationTargetException lorsque j'accède à un WS Filenet


Sujet :

Services Web Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 12
    Points : 6
    Points
    6
    Par défaut InvocationTargetException lorsque j'accède à un WS Filenet
    Bonjour à tous,

    je vous expose donc mon problème.

    A partir d'un WSDL Filenet, j'ai généré mes classes java avec ant axis qui utilse le WSDL2JAVA.

    Ce que je ne trouve déjà pas très normal, c'est que je doive manuellement modifier certaines classes pour que ca compile.

    Enfin soit, une fois les corrections faites, je teste ma requete et je tombe sur cette affreuse erreur : java.lang.reflect.InvocationTargetException.

    AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.lang.reflect.InvocationTargetException faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:java.lang.reflect.InvocationTargetException at org.apache.axis.encoding.ser.BeanDeserializer.onStartElement(BeanDeserializer.java:475) at org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:393) at org.apache.axis.encoding.ser.BeanDeserializer.startElement(BeanDeserializer.java:154) at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141) at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236) at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384) at org.apache.axis.client.Call.invoke(Call.java:2467) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at com.filenet.http://www.ns.fnce._2005._02.ws.SOAP...bjects(Unknown Source) at org.apache.jsp.index_jsp.openDocument(org.apache.jsp.index_jsp:131) at org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:347) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325) at
    Etant donné que l'erreur se produit lors du org.apache.axis.encoding.ser.BeanDeserializer.onStartElement,

    serait il possible que cette erreur soit due à une mauvaise génération des classes ? Ou du moins à des mauvais types pour les attributs de cette classe.

    Par exemple, j'ai certains types du style org.apache.axis.types.UnsignedLong.
    Ne vaut il pas mieux utiliser les types java. (java.math.BigInteger) ?

    Est ce que ces différents types pourraient causer une InvocationTargetException ?

    Je vous remercie d'avance, pour les pistes que vous me permettriez d'explorer ...

  2. #2
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Je pense que la réponse à ce problème peut aider pas mal de gens

  3. #3
    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
    si tu génères ton stub en java grace à axis, tu dois pouvoir regarder quel type est attendu par ta méthode.

    Effectivement c'est possibel que linvovation target exception vienne de la.

    tu n'as pas de "-" dans le nom de ta variable?

    Envoie ton wsdl pour voir stp ?

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Je n' ai aucun "-" dans le nom des variables.

    Voila une partie du WSDL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <xsd:complexType name="ObjectRequestType">
     <xsd:sequence>
      <xsd:element name="SourceSpecification" type="ObjectReference" /> 
      <xsd:element name="PropertyFilter" type="PropertyFilterType" minOccurs="0" /> 
      </xsd:sequence>
      <xsd:attribute name="id" type="xsd:ID" /> 
      <xsd:attribute name="cacheAllowed" type="xsd:boolean" /> 
      <xsd:attribute name="maxElements" type="xsd:int" /> 
      <xsd:attribute name="continueFrom" type="xsd:string" /> 
      </xsd:complexType>
    Coté java la classe générée se présente comme ca :
    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
     
    public class ObjectRequestType  implements java.io.Serializable {
        private ObjectReference sourceSpecification;
     
        private PropertyFilterType propertyFilter;
     
        private org.apache.axis.types.Id id;  // attribute
     
        private boolean cacheAllowed;  // attribute
     
        private int maxElements;  // attribute
     
        private java.lang.String continueFrom;  // attribute
     
        public ObjectRequestType() {
        }
        ...
    Ce que j'aurai préféré avoir comme code généré c'est :
    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
     
    public class ObjectRequestType  implements java.io.Serializable {
        private ObjectReference sourceSpecification;
     
        private PropertyFilterType propertyFilter;
     
        private java.lang.String id;  // attribute
     
        private java.lang.Boolean cacheAllowed;  // attribute
     
        private java.lang.Integer maxElements;  // attribute
     
        private java.lang.String continueFrom;  // attribute
     
        public ObjectRequestType() {
        }
        ...
    J'utilise wsd2java avec ant.
    Y a t'il une configuration spéciale à faire pour ne pas générer des types primitives(int,boolean,...) mais des objets wrappers (Integer,Boolean,...)

    Je pense bien que mon problème vient de ces classes primitives ...

    C'est donc le mapping qui n'est pas correct mais je ne peux pas changer manuellement les classes générées car y en a un paquet et puis y a surement d'autres modifications à faire que de changer le type.

  5. #5
    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
    ouaip j'ai eut le même probleme que toi.

    J'ai résolu mon problème en allant chercher la classe désirée dans le stub par introspection puis une méthode convertissait mon objet dans la classe attendue.

    Si tu trouves mieux je suis preneuse

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Je vais encore faire quelques recherches pour
    modifier la génération des classes à partir de WSDL2Java.

    Mais c'est vrai que si je ne trouve pas, j'investiguerai sur une méthode de conversion maison.

  7. #7
    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
    Et bien bon courage et si tu trouves, n'hésites pas a passer le mettre ici, ca m'interesse grandement

    Aph'

Discussions similaires

  1. [VBA] Erreur 52 lorsqu'il y a déconnexion au serveur
    Par banzaii dans le forum Général VBA
    Réponses: 6
    Dernier message: 27/06/2017, 22h49
  2. changer image lorsque bouton cliqué
    Par mussara dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/11/2004, 12h43
  3. Réponses: 4
    Dernier message: 13/04/2004, 19h12
  4. [DirectShow] problème lorsque je détruit mon graphe
    Par juldjin2 dans le forum DirectX
    Réponses: 1
    Dernier message: 04/02/2004, 21h30
  5. Fonction qui s'active lorsqu'un Form bouge
    Par Xavier dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/05/2003, 12h54

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