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 :

[JSON] Paramètre Service Web JAX-REST exception


Sujet :

Services Web Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Points : 346
    Points
    346
    Par défaut [JSON] Paramètre Service Web JAX-REST exception
    Bonjour,

    Voilà j'ai développé un service web JAX-Rest qui permet de gérer mes clients (Customer). Lorsque j'appelle la méthode "@GET", je n'ai pas de problème, mais lorsque je veux mettre à jour le données de mon client avec la méthdoe "@PUT", j'ai l'exception suivante qui apparaît:

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
     
    .........
    WARNING: javax.xml.bind.UnmarshalException
     - with linked exception:
    [com.sun.istack.SAXParseException2; columnNumber: 0; élément inattendu (URI : "", local : "ns2.Customer"). Les éléments attendus sont <{http://cust.test.com/}Customer>,<{http://cust.test.com/}delete>,<{http://cust.test.com/}deleteResponse>,<{http://cust.test.com/}findAll>,<{http://cust.test.com/}findAllResponse>,<{http://cust.test.com/}findById>,<{http://cust.test.com/}findByIdResponse>,<{http://cust.test.com/}insert>,<{http://cust.test.com/}insertResponse>,<{http://cust.test.com/}update>,<{http://cust.test.com/}updateResponse>]
    	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:435)
    	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:372)
    	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:342)
    	at org.apache.cxf.jaxrs.provider.json.JSONProvider.readFrom(JSONProvider.java:229)
    	at org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBodyReader(JAXRSUtils.java:1196)
    	at org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1144)
    	at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:695)
    	at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:655)
    	at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:238)
    	at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:99)
    	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
    	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
    	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
    	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223)
    	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:203)
    	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
    	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:158)
    	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:243)
    	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPut(AbstractHTTPServlet.java:180)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
    	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:219)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    	at java.lang.Thread.run(Thread.java:722)
    Caused by: com.sun.istack.SAXParseException2; columnNumber: 0; élément inattendu (URI : "", local : "ns2.Customer"). Les éléments attendus sont <{http://cust.test.com/}Customer>,<{http://cust.test.com/}delete>,<{http://cust.test.com/}deleteResponse>,<{http://cust.test.com/}findAll>,<{http://cust.test.com/}findAllResponse>,<{http://cust.test.com/}findById>,<{http://cust.test.com/}findByIdResponse>,<{http://cust.test.com/}insert>,<{http://cust.test.com/}insertResponse>,<{http://cust.test.com/}update>,<{http://cust.test.com/}updateResponse>
    	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:662)
    	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:258)
    	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:253)
    	at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:120)
    	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1063)
    	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:498)
    	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:480)
    	at com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:75)
    	at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:246)
    	at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:180)
    	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:370)
    	... 36 more
    Caused by: javax.xml.bind.UnmarshalException: élément inattendu (URI : "", local : "ns2.Customer"). Les éléments attendus sont <{http://cust.test.com/}Customer>,<{http://cust.test.com/}delete>,<{http://cust.test.com/}deleteResponse>,<{http://cust.test.com/}findAll>,<{http://cust.test.com/}findAllResponse>,<{http://cust.test.com/}findById>,<{http://cust.test.com/}findByIdResponse>,<{http://cust.test.com/}insert>,<{http://cust.test.com/}insertResponse>,<{http://cust.test.com/}update>,<{http://cust.test.com/}updateResponse>
    	... 47 more
     
    mai 23, 2013 5:34:29 PM org.apache.catalina.core.StandardWrapperValve invoke
    SEVERE: Servlet.service() for servlet [CXF Servlet Cust] in context with path [//Test_Cust] threw exception [L''exécution de la servlet a lancé une exception] with root cause
    java.lang.NoSuchMethodError: javax.ws.rs.BadRequestException.validate(Ljavax/ws/rs/core/Response;Ljavax/ws/rs/core/Response$Status;)Ljavax/ws/rs/core/Response;
    	at javax.ws.rs.BadRequestException.<init>(BadRequestException.java:92)
    	at org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.handleExceptionEnd(AbstractJAXBProvider.java:671)
    	at org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.handleJAXBException(AbstractJAXBProvider.java:683)
    	at org.apache.cxf.jaxrs.provider.json.JSONProvider.readFrom(JSONProvider.java:243)
    	at org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBodyReader(JAXRSUtils.java:1196)
    	at org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1144)
    	at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:695)
    	at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:655)
    	at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:238)
    	at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:99)
    	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
    	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
    	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
    	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223)
    	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:203)
    	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
    	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:158)
    	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:243)
    	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPut(AbstractHTTPServlet.java:180)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
    	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:219)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    	at java.lang.Thread.run(Thread.java:722)
    J'utilise cxf 2.7.4!

    J'ai pensé que l'erreur provient du namespace "n2.Custormer", mais je ne suis que cela soit vraiment cela et je ne sais comment je peux le changer au niveau du code?

    Est-ce que quelqu'un aurait une idée!

    D'avance je vous remercie de votre aide!

    Cédric

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Points : 346
    Points
    346
    Par défaut
    Bonjour,

    j'ai résolu mon problème en mettant dnas la classe Customer ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    @XmlRootElement(name = "Customer", namespace="")
    ....
    Et ainsi je n'ai plus de préfix "n2...."!

    Cédric

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

Discussions similaires

  1. Service Web WCF REST JSON et firefox
    Par FraktaL dans le forum Services Web
    Réponses: 8
    Dernier message: 13/02/2013, 17h51
  2. Intégrer du code généré pour un service web JAX-WS
    Par Cgeek dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 28/12/2011, 16h01
  3. Réponses: 1
    Dernier message: 18/11/2011, 22h44
  4. Creation services web adapté - Rest
    Par knebhi dans le forum REST
    Réponses: 0
    Dernier message: 28/05/2010, 17h17
  5. Echec de déploiement d'un service web JAX-WS RI sur Tomcat 6.0
    Par Arnaud_03 dans le forum Services Web
    Réponses: 1
    Dernier message: 31/07/2008, 10h55

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