Heute hatte ich die Idee, eine sehr einfache Webanwendung zu erstellen, die von einem REST-Backend betrieben wird. Da ich einen sehr leichten Server wollte, habe ich angefangen, Jetty zu betrachten. Und da ich eine andere JAX-RS-Implementierung als Jersey ausprobieren wollte, schaute ich auf RestEasy. Ich dachte, diese 2 wären einfach zu implementieren. Ich habe mich geirrt ...
Ich habe die grundlegenden Jetty-Server- und Servlet-Abhängigkeiten importiert, da ich dachte, dass dies die einzigen Serveranforderungen für einen einfachen (REST-only) Jetty-Server wären (ich habe versucht, die Webapp-Abhängigkeit zu verwenden; dies hat die gleichen Fehler verursacht).
%Vor%Dann habe ich die grundlegenden RestEasy-Abhängigkeiten importiert.
%Vor%Hauptmethode:
%Vor%ExampleResources:
%Vor%BeispielResourceImpl:
%Vor%Wenn ich zum webapge gehe, bekomme ich die folgende Spur:
%Vor%Normalerweise würde das bedeuten, dass ich eine Abhängigkeit vergessen habe, aber ich habe wirklich keine Ahnung, was los ist.
Ich bin gerade auf dasselbe Problem gestoßen. Die Lösung bestand darin, die Jaxrs-API explizit als erste Abhängigkeit in der Liste der Abhängigkeiten hinzuzufügen.
%Vor% Jackson verwendet die jsr311-API, die dieselbe Response
-Klasse bereitstellt, die von der Klasse BuiltResponse
verwendet wird. Leider enthält diese Response
nicht die Methode getHeaders()
. Obwohl die Abhängigkeit aufgelöst wird, verwendet sie eine falsche Klasse. Wenn die Jackson-Abhängigkeit irgendwie vor dem Rasteasy steht, wird die obige Ausnahme ausgelöst.
Ich hatte das gleiche Problem. Zuerst arbeitete es mit JAX-RS 2 und dann wurde es nach JAX-RS 3 migriert, also dachte ich, dass es etwas damit zu tun hat. Nachdem ich nicht versucht habe, JBoss mit JAX-RS 3 aus der App über Maven und jboss-deployment-structure.xml zu erreichen, habe ich versucht, JBoss-Module zu aktualisieren, was mit folgendem Verfahren geschehen kann:
3.1. Aktualisieren von Resteasy innerhalb von JBoss AS 7 Rasteasy wird mit JBoss AS 7 gebündelt. Sie werden wahrscheinlich Resteasy in AS7 aktualisieren müssen. Die Resteasy-Distribution wird mit einer Zip-Datei namens resteasy-jboss- modles-3.0.1.Final.zip geliefert. Entpacken Sie diese Datei mit dem Modul / Verzeichnis der JBoss AS7-Distribution. Dies wird überschrieben einige der vorhandenen Dateien dort.
Quelle: Ссылка
Ich hoffe, es hilft!
Ich bin auch auf dieses Problem gestoßen und es hat ewig gedauert, bis ich herausgefunden habe, wie ich es lösen kann. Kevin Day hatte Recht. Das Problem war, dass eine der Abhängigkeiten in meinem POM indirekt in Jackson gezogen wurde und diese Abhängigkeit in der POM-Datei vor der Jaxrs-Abhängigkeit platziert wurde. Eine Lösung bestand darin, einfach die Jaxrs-Abhängigkeit an den Anfang der POM-Datei zu verschieben, damit sie vor Jackson aufgenommen wurde.
Hatte das gleiche Problem beim Versuch, einen Jax-Rs (mit Resteasy) auf Glassfish 3.1.2.2 zu implementieren. Versucht zu lösen, was die Inkonsistenz verursachte, dauerte stundenlang und konnte es am Ende nicht finden - Glasfischverhalten wurde immer seltsamer.
Meine Empfehlung für jeden, der versucht, auf gf resesteady zu laufen: hört auf und benutzt Jersey.
Tags und Links jax-rs jetty embedded-jetty resteasy nosuchmethoderror