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

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    octobre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2018
    Messages : 2
    Points : 1
    Points
    1

    Par défaut [TOS DI 7.0.1] tRestClient Erreur Java sur GET

    Bonjour à tous,

    Je me permets de venir vers vous concernant un soucis que je rencontre avec le composant tRestClient via la méthode GET.

    Avant tout, je précise que j'envoi plusieurs requêtes à la même API, la première fonctionne sans soucis, tandis que les autres "endpoints" me renvoient systématiquement un message d'erreur.
    Ces mêmes requêtes fonctionnent parfaitement et me retournent ma réponse en JSON via Firefox, Postman ou curl.
    A l'heure actuelle, je récupère ces réponses via un script PowerShell dans lequel je réalise un certain nombre de calculs. Cela fonctionne, mais ce n'est pas le plus rapide et je compte donc faire la même chose en utilisant Talend / mySQL.

    Sans aucune sorte de paramétrage, je reçois l'erreur suivante :
    Exception in component tRESTClient_1 (APITest)
    javax.ws.rs.ProcessingException: java.lang.IllegalArgumentException: Media type separator is missing
    at org.apache.cxf.jaxrs.client.WebClient.handleResponse(WebClient.java:1157)
    at org.apache.cxf.jaxrs.client.WebClient.doResponse(WebClient.java:1126)
    at org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:1051)
    at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:897)
    at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:866)
    at org.apache.cxf.jaxrs.client.WebClient.invoke(WebClient.java:431)
    at org.apache.cxf.jaxrs.client.WebClient.get(WebClient.java:611)
    at local_project.apitest_0_1.APITest.tRESTClient_1Process(APITest.java:816)
    at local_project.apitest_0_1.APITest.runJobInTOS(APITest.java:1259)
    at local_project.apitest_0_1.APITest.main(APITest.java:1110)
    Caused by: java.lang.IllegalArgumentException: Media type separator is missing
    at org.apache.cxf.jaxrs.impl.MediaTypeHeaderProvider.handleMediaTypeWithoutSubtype(MediaTypeHeaderProvider.java:191)
    at org.apache.cxf.jaxrs.impl.MediaTypeHeaderProvider.internalValueOf(MediaTypeHeaderProvider.java:80)
    at org.apache.cxf.jaxrs.impl.MediaTypeHeaderProvider.valueOf(MediaTypeHeaderProvider.java:66)
    at org.apache.cxf.jaxrs.utils.JAXRSUtils.toMediaType(JAXRSUtils.java:1711)
    at org.apache.cxf.jaxrs.impl.ResponseImpl.getMediaType(ResponseImpl.java:248)
    at org.apache.cxf.jaxrs.impl.ResponseImpl.doReadEntity(ResponseImpl.java:331)
    at org.apache.cxf.jaxrs.client.AbstractClient.readBody(AbstractClient.java:539)
    at org.apache.cxf.jaxrs.client.WebClient.handleResponse(WebClient.java:1138)
    ... 9 more
    Quelque soit le paramétrage utilisé, j'obtiens le même message. Enfin, la même requête effectuée via le composant tSysteme avec une commande curl me retourne bien ma réponse. Je pourrai donc partir là dessus mais je pensai le composant tRestClient plus adapté.

    Je m'arrache les cheveux sur ce problème depuis quelques temps... Auriez-vous une idée de ce qui peut causer cette erreur ?

    PS: j'ai posté la même question sur Talend Community mais je n'ai eu aucun retour permettant de débloquer ce soucis.

    Merci !

  2. #2
    Membre éclairé Avatar de MythOnirie
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    juin 2012
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : juin 2012
    Messages : 360
    Points : 768
    Points
    768

    Par défaut

    Bonjour,

    Quel est le paramétrage que vous avez renseigné dans votre composant ?

    L'erreur semble indiqué qu'il y aurait une erreur sur le type de media.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    octobre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2018
    Messages : 2
    Points : 1
    Points
    1

    Par défaut

    Par défaut, je n'ai aucun paramétrage spécifique. J'ai essayé de différentes façon et notamment en rajoutant "content-type" - "application/json" mais ça ne fait aucune différence. Voici un screenshot des paramètres avancés:
    Nom : tRestClient2.PNG
Affichages : 23
Taille : 21,5 Ko

    Lorsque j’exécute ma requête via Firefox, voici les entêtes qui ressortent:
    Nom : entêtes.PNG
Affichages : 24
Taille : 24,0 Ko

    J'ignore si la réponse se trouve dedans, mais toujours est-il que si j'indique les mêmes entêtes de requêtes, et plus spécifiquement "accept-encoding" - "gzip", j'arrive à récupérer ma réponse, mais qui apparaît sous cette forme:
    Nom : result.PNG
Affichages : 23
Taille : 29,6 Ko

    Cela a donc a voir avec l'encoding ?


    edit: il n'y a pas de décompresseur gzip attaché au composant tRESTClient, c'est donc pour cela qu'il me retourne cette série de caractères. Pour autant, si je ne spécifie pas "accept-encoding" - "gzip", je reçois toujours cette erreur Java. J'ajoute que je viens d'essayer avec le composant tHTTPRequest et je peux récupérer ma réponse. Je peux donc contourner ce problème, mais qu'est-ce qui explique l'erreur de TRestClient???

Discussions similaires

  1. [WM22] Erreur java sur android
    Par apprentidev007 dans le forum Windev Mobile
    Réponses: 1
    Dernier message: 28/11/2017, 00h26
  2. Eclipse erreur : java.lang.OutOfMemoryError: Java heap space
    Par sderecourt dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 14/04/2006, 12h28
  3. Réponses: 16
    Dernier message: 10/01/2006, 23h02
  4. Réponses: 5
    Dernier message: 12/12/2005, 14h13

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