WARNUNG: Anbieter com.Sonne.xml.intern.binden.v2.ContextFactory nicht gefunden
Habe ich integriert in einer JSF-app ein paar webservices durch Jersey
. Alles funktioniert einwandfrei, auch die OAuth-Identifizierung arbeitet. ABER! Beim starten von meinem webserver, ich bekomme IMMER diese Fehlermeldung :
INFO: Scanning for root resource and provider classes in the packages:
com.mysite.webService
INFO: Root resource classes found:
class com.mysite.webService.Accounts
INFO: No provider classes found.
INFO: Initiating Jersey application, version 'Jersey: 1.17 01/17/2013 03:31 PM'
SEVERE: The provider class, class com.sun.jersey.oauth.server.OAuthProviderInjectionProvider, could not be instantiated. Processing will continue but the class will not be utilized
java.lang.RuntimeException: No OAuthProvider implementation found in the list of providers.
at com.sun.jersey.oauth.server.OAuthProviderInjectionProvider.<init>(OAuthProviderInjectionProvider.java:71)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
(edit2: oben ist jetzt gelöst)
und diese Warnung:
...
WARNING: Provider com.sun.xml.internal.bind.v2.ContextFactory not found
javax.xml.bind.JAXBException: Provider com.sun.xml.internal.bind.v2.ContextFactory not found
- with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory not found by com.sun.jersey.glassfish.v3.osgi.jersey-gf-server [157]]
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:148)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:361)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:446)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:409)
at com.sun.jersey.server.impl.wadl.WadlApplicationContextImpl.<init>(WadlApplicationContextImpl.java:95)
Hier ist mein web.xml
relevanten Einträge :
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>my.site.webService</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
Meine Klassen wie folgt Aussehen :
@Path("/rest")
public class MyClass {
@GET
@Path("/{id}/results")
@Produces("application/json")
public String getResults(@Context HttpContext hc, @PathParam("id")) {
//...
}
}
Ich bin mit Majorra 2.1.20
auf Glassfish 2.1.2.2
mit PrimeFaces 3.4.1
und Jersey 1.17
als addons. Die Entwicklung in Eclipse Juno
falls Sie dies betrifft, nichts.
Bearbeiten
Dieser hindert mich nicht daran, alles in Ordnung mit Bezug auf webservices. Aber jedesmal, wenn ich etwas veröffentlichen auf Glassfish, der Fehler zeigt sich.
Wie bereits in einer Antwort weiter unten, diese sollten behoben wurden in der version 1.7 nach JIRA-bug-JERSEY-709. Aber ich bin sehr gut auf v. 1.17 und ich bin noch immer dieser.
Habe ich auch Hinzugefügt, wird eine Warnung ich bin immer in der Stapel-Ablaufverfolgung. Wenn dies kann helfen, festzustellen, das Problem!
Suche im web : ich habe festgestellt, Das gleiche ungelöste Problem hier
Edit 2
Als beantwortet, die Aktualisierung meiner OAuthClient.jar
löste die erste error
. Ich bin NOCH immer die WARNING: Provider com.sun.xml.internal.bind.v2.ContextFactory not found
.
Edit 3 - Lösungsversuch
Versucht Aktualisierung JAXB nach dem, was ich dachte wäre eine Führung auf diese Frage. Dies habe nicht dazu führen, dass alles, was erfolgreich ist. Dieselbe Warnung. Beim entfernen der Jersey-bits in meine web.xml
diese Warnung nicht mehr zeigen (nur um zu bestätigen, das ist wirklich der Einleitung der Ausgabe).
InformationsquelleAutor blo0p3r | 2013-03-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
In einem anderen Kontext : eigenständige Java-Anwendung mit Maven
In pom.xml, jaxb definiert wurde, mit diesen Zeilen :
Projekt Kompilierung erfolgreich ist, aber beim laufen, erhielt ich die gleiche Exception
(java.lang.ClassNotFoundException: com.Sonne.xml.binden.v2.ContextFactory)
Problem wurde gelöst durch das hinzufügen dieser Zeilen vor jaxb-api-dependency
Folgende EXAKT die gleichen Schritte wie in diesem tutorial (youtu.werden/NhY8q5B0s-s) gibt mir diese Fehlermeldung (Obwohl es bei ihm funktioniert), dadurch wird das Problem behoben :S. Danke! Das ist zwar sehr seltsam!
Außerdem hat es zu dieser version, wenn ich mit der letzten version der Bibliothek wirft ein [java.lang.ClassNotFoundException: com.Sonne.istack.Pool -] Fehler
InformationsquelleAutor Obscur Moirage
Dieser Fehler verschwunden ist, wenn Sie ein Upgrade auf Jersey 1.18.
Sehen https://java.net/jira/browse/JERSEY-1932
Upgrade Glassfish, Jersey 1.18 sehen : https://jersey.java.net/nonav/documentation/1.18/glassfish.html
InformationsquelleAutor blo0p3r
Sollte dies behoben in v1.7 wie pro JERSEY-709.
INFO: Initiating Jersey application, version 'Jersey: 1.17 01/17/2013 03:31 PM'
. Gleichen Fehler.Du meinst, Sie sind auf jeden Fall laufen 1.7? Denn 1.17 != 1.7
Ich meine
1.17
wie in : Ein Punkt Siebzehn.Der Fehler ist behoben, die 1.7 und nicht 1.17. Und wenn ich völlig falsch verstanden, die Jersey Numerierung der 1.7 ist eine viel neuere Version als 1.17. Nein?
Ich war unter den Eindruck, dass es
one dot seven
vsone dot seventeen
. 17 > 7. Vielleicht bin ich etwas fehlt. Ich bin sicher, ich arbeite mit der neuesten Version von Jersey.InformationsquelleAutor calvinkrishy
M8, traf ich auch auf:
Aber es konnte mit der Arbeit:
Dann die Ausnahme nicht mehr existieren.
Bin ich mir noch nicht ganz sicher, wie es gelöst ist, aber ich hoffe, dass diese Ihnen helfen können.
InformationsquelleAutor Xiangyu