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 :

Method annotated with PUT of resource is not recognized as valid resource method.


Sujet :

Services Web Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut Method annotated with PUT of resource is not recognized as valid resource method.
    Bonjour,

    Je suis néophite en Jersey ... et je rencontre le problème suivant alors que je souhaite mettre en place une méthode utilisant l'annotation @PUT avec réception de données en JSON. Je suis sur un système d'exploitation CentOS et je développe avec Eclipse.

    Donc voici l'erreur que je rencontre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SEVERE: Missing dependency for method public javax.ws.rs.core.Response monPackage.maClass.updateUser(java.lang.String,java.lang.String,java.lang.String,java.lang.String) at parameter at index 3
    SEVERE: Method, public javax.ws.rs.core.Response monPackage.maClass.updateUser(java.lang.String,java.lang.String,java.lang.String,java.lang.String), annotated with PUT of resource, class package.Class, is not recognized as valid resource method.
    D'après tout ce que j'ai pu voir sur divers forums, je pense que mon problème vient des @FormDataParam (mais je n'en suis pas sûr) car ces annotations ne marchent pas avec tous les objets apparamment. Par contre ces annotations fonctionnent avec les String et vu que je rattrape les données en JSON, je n'ai que des String ...

    Voici la méthode dans laquelle j'ai développé le service @PUT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @PUT
    @Path("/update_user")
    @Consumes(MediaType.APPLICATION_JSON + ";charset=utf-8")
    @LnjWSMethodReflect(method = "PUT", path = "/update_user", description="Allow the user to update its loc and reg_ig")
    public Response updateUser(
    		@FormDataParam("identifier") final String identifier_,
    		@FormDataParam("reg_id") final String reg_id_,
    		@FormDataParam("latitude") final String latitude_, 
    		@FormDataParam("longitude") final String longitude_) {
    LOGGER.info("update_reg_log - identifier : " + identifier_ + ", reg_id : " + reg_id_ + ", latitude : " + latitude  + ", longitude : " + longitude);
    .....}
    J'ai vu aussi sur des forums que cela pouvait venir des librairies utilisées ... donc voici les librairies jersey ou jaxb que j'utilise et qui sont dans /WebContent/WEB-INF/lib :
    • jaxb-api-2.2.2.jar
    • jaxb-impl-2.2.3-1.jar
    • jersey-core-1.18.3.jar
    • jersey-json-1.18.3.jar
    • jersey-multipart-1.18.3.jar
    • jersey-server-1.18.3.jar
    • jersey-servlet-1.19.jar


    et j'ai aussi deux librairies javax.ws.rs-api-2.0.jar et reflections-0.9.9-RC1.jar qui sont référencées dans le java build path du projet Eclipse en local sur mon système d'exploitation.

    Si quelqu'un a une idée pour résoudre mon problème, je vous en remercie !

    OS : LinuxMint 20

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut
    Bonjour,

    Mon problème est toujours présent ! je croyais l'avoir résolu à un moment mais c'est parce que j'avais enlevé les @FormDataParam ...
    Du coup, j'en déduis que mon problème est lié à ces annotations !

    SI je ne mets pas les @FormDataParam, les paramètres passés avec la méthode PUT se retrouvent tous dans le premier attribut 'identifier' comme vous pouvez le voir dans le log ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    19:12 08:31:37 INFO -..... - update_reg_log - identifier : {"identifier"=1,"reg_id"="4512kf85g2h6d","latitude"=11,"longitude"=12}, reg_id : , latitude : null, longitude : null
    Je teste les requêtes avec RESTclient sur firefox. Je mets un header name : Content-Type et un header value : application/json. Ensuite je met le body suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"identifier"=1,"reg_id"="4512kf85g2h6d","latitude"=11,"longitude"=12}
    OS : LinuxMint 20

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut
    Bonjour,

    Ma solution a été de supprimer toutes les annotations et de passer un seul objet plutôt que tous les attributs.

    OS : LinuxMint 20

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/02/2013, 19h22
  2. could not locate the message resource with key
    Par st4nisl4s dans le forum Struts 1
    Réponses: 0
    Dernier message: 02/03/2012, 09h10
  3. Réponses: 2
    Dernier message: 30/10/2008, 11h45
  4. Réponses: 3
    Dernier message: 02/06/2007, 13h54
  5. Réponses: 2
    Dernier message: 28/03/2007, 23h25

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