NoClassDefFoundError ProcessingException während der Migration von jersey 1.x jersey 2.x ( 2.8 )
Entwickelte ich eine web service-Anwendung, die gut funktioniert mit jersey 1.x ( 1.16 )
Ich habe vor kurzem versucht, zu migrieren, um die aktuelle stabile jersey version 2.8
Ich alle gelöscht jersey-jar-Dateien von v1.16
dann habe ich heruntergeladen jersey Gläser v2.8 aus dem link - https://jersey.java.net/download.html
Als pro-Dokumentation kam ich zu wissen, dass, sollte ich die neueste servlet-jar, servlet jar-2.5 oder höher, So dass ich heruntergeladen servlet-api-2.5.jar und gleich Hinzugefügt, um /libs Ordner.
Habe ich heruntergeladen javax.ws.rs-api-2.0-m09.jar und fügte zu /libs
Ich habe auch die Letzte über Bord werfen v 1.3.3 /libs
Aber ich erhalte eine Ausnahme, wenn ich auf tomcat7 wie folgt
Was sind die genauen Schritte zum migrieren von jersey 1.x, 2.x ? Was hier fehlt ?
Meine Web.xml sieht wie folgt aus
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>com.tempWSJersey2.WebServices</display-name>
<servlet>
<servlet-name>Temp REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.temp</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Temp REST Service</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
Und die Ausnahme -
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/tempWSJersey2]]
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)
at java.util.concurrent.FutureTask.get(FutureTask.java:111)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/tempWSJersey2]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
... 7 more
Caused by: java.lang.NoClassDefFoundError: javax/ws/rs/ProcessingException
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2904)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2308)
at java.lang.Class.getDeclaredFields(Class.java:1760)
at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:87)
at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:261)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:140)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:67)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:405)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 7 more
Caused by: java.lang.ClassNotFoundException: javax.ws.rs.ProcessingException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
... 28 more
May 11, 2014 8:49:41 AM org.apache.catalina.core.ContainerBase startInternal
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)
at java.util.concurrent.FutureTask.get(FutureTask.java:111)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.startup.Catalina.start(Catalina.java:684)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:451)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 7 more
May 11, 2014 8:49:41 AM org.apache.catalina.startup.Catalina start
SEVERE: Catalina.start:
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.startup.Catalina.start(Catalina.java:684)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:451)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 11 more
May 11, 2014 8:49:41 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1452 ms
Wenn ich die Einrichtung Klasse durch die Erweiterung ResourceConfig-Klasse
Ich bekomme seltsame Fehler wie folgt.
Multiple markers at this line
- The type javax.ws.rs.core.Configurable cannot be resolved. It is indirectly referenced
from required .class files
- The hierarchy of the type AppConfiguration is inconsistent
Update - Lösung für das problem
1> Fügen Sie alle jar-Dateien gegeben jaxrs-ri-Ordner, die Sie herunterladen als jersey 2.8 aus dem link
https://jersey.java.net/download.html
Hinzufügen jar-Dateien aus allen Ordner "lib", "ext", "api"
2> Fügen Sie die jar-Dateien in den unten posten
Kann nicht ermöglichen, POJO-basierte JSON-binding Unterstützung für Jackson Jersey 2.0
Nun jersey 2.8 funktioniert perfekt ..
Hi ich angewendet zu beheben, aber später wurde es mit einigen anderen Ausnahmen. Dann kam ich zu wissen, dass ich alle Gläser, die kommen mit dem jersey-framework. wenn wir download es enthält drei Ordner Lib,extern, api, sollte ich hinzufügen-Gläser aus alle diese Ordner. Ich war in der Lage, alle zu beheben,aber wenn ich eine einfache welCome-service, der eine GET-Methode und gibt JSON-Antwort {"Status":"herzlich Willkommen"} , stürzte und warf eine exception org.glassfish.jersey.Nachricht.intern.MessageBodyProviderNotFoundException: MessageBodyWriter nicht gefunden für media-type=application/json, Typ=Klasse keine Ahnung über die gleichen ?
Siehe das update zu beantworten. Sie müssen hinzufügen "org.codehaus.jackson.jaxrs" zur Verfügung gestellt, wenn Sie mit jackson json etc. Wenn Sie etwas anderes als jackson Sie haben können, um einige der anderen Leitung als der für die entsprechende jar. Ich denke, das wird das Problem lösen.
Habe meine Letzte Aktualisierung der Antwort helfen?
Keine vkg, Es trifft nicht zu helfen., Stattdessen habe ich behoben Ausnahme von verweisen einige andere stackoverflow-post. Als pro-post, ich muss kopieren Sie alle jar-Dateien aus dem heruntergeladenen jaxrs-ri-Ordner. Es hat drei Ordner innerhalb es, "lib", "extern" und "api" , den muss ich kopieren Sie alle jar-Dateien aus diesen drei Ordner zu meinen Antrag lib-Ordner. Dann ist Es behoben alle Fragen
InformationsquelleAutor Sadanand | 2014-05-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ausnahme, Sie sind immer passiert, weil Sie heruntergeladen "javax.ws.rs-api-2.0-m09.jar" diese jar-Datei muss nicht ProcessingException laden Sie die neueste
Diese jar herunterladen javax.ws.rs-api-2.0.jar
Zweitens ich denke, Sie sind fehlt ein Teil von Ihr web.xml
Versuchen Sie, diese Dinge, um Ihre web.xml als für Sie geeignete Anwendung. Wenn Sie nicht über diesem Abschnitt kann dies auch dazu führen, SCHWERER: EIN Kind Behälter versagt beim start....
Dies ist, was Sie vermissen. Bitte beachten Sie, dass die param-value ist die Liste der Pakete, die Ihr rest-services.
Zu Holen neuesten Jackson verwenden diese Link
InformationsquelleAutor vkg
Wenn Sie arbeiten in eclipse. Entfernen Sie einfach die Bibliotheken von Deployment-Assembly, und fügen Sie Sie erneut. Manchmal nach dem hinzufügen neue jar-Datei nicht aktualisieren Sie die Bibliothek von der web-Anwendung
BuildPath-> - Bereitstellung Baugruppe
InformationsquelleAutor biswarup bannerjee