2016-06-09 5 views
0

Ich benutze Websphere Liberty-Profil, um meine Ruhe-API zu implementieren. Ich sehe unten Fehlermeldung, wenn ich versuche, meine API zu testen. Ich habe keine Ahnung, wo diese Jboss-Klassen kommen. Ich finde buchstäblich keine Dateien, die mit JBOSS zu tun haben. Kann jemand bitte erklären, wo diese Jboss Fehler vonjava.lang.ClassCastException: org.jboss.weld.manager.BeanManagerImpl nicht kompatibel mit com.sun.jersey.server.impl.cdi.CDIExtension

[ERROR ] SRVE0271E: Uncaught init() exception created by servlet [REST Service] in application [gmc]: java.lang.ClassCastException: org.jboss.weld.manager.BeanManagerImpl incompatible with com.sun.jersey.server.impl.cdi.CDIExtension 
    at com.sun.jersey.server.impl.cdi.CDIExtension.getInitializedExtension(CDIExtension.java:180) 
    at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactory.<init>(CDIComponentProviderFactory.java:95) 
    at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer.initialize(CDIComponentProviderFactoryInitializer.java:76) 
    at com.sun.jersey.spi.container.servlet.WebComponent.configure(WebComponent.java:572) 
    at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.configure(ServletContainer.java:332) 
    at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:604) 
    at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:244) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:330) 
    at [internal classes] 



[ERROR ] SRVE0315E: An exception occurred: java.lang.Throwable: javax.servlet.ServletException: SRVE0207E: Uncaught initialization exception created by servlet 
     at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:4898) 
     at [internal classes] 
    Caused by: javax.servlet.ServletException: SRVE0207E: Uncaught initialization exception created by servlet 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:399) 
     ... 1 more 
    Caused by: java.lang.ClassCastException: org.jboss.weld.manager.BeanManagerImpl incompatible with com.sun.jersey.server.impl.cdi.CDIExtension 
     at com.sun.jersey.server.impl.cdi.CDIExtension.getInitializedExtension(CDIExtension.java:180) 
     at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactory.<init>(CDIComponentProviderFactory.java:95) 
     at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer.initialize(CDIComponentProviderFactoryInitializer.java:76) 
     at com.sun.jersey.spi.container.servlet.WebComponent.configure(WebComponent.java:572) 
     at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.configure(ServletContainer.java:332) 
     at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:604) 
     at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207) 
     at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394) 
     at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577) 
     at javax.servlet.GenericServlet.init(GenericServlet.java:244) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:330) 
     ... 1 more 
+1

ich Sie gehe davon haben CDI-1.2 in server.xml konfiguriert. Liberty verwendet den CDI RI, der schweißbar ist und in einem jboss-Paket kommt, aus dem die Klassen stammen. Sie haben Jersey in Ihrer App, die etwas Seltsames macht, aber was ich nicht weiß ohne weitere Informationen über Versionen. – Alasdair

+0

JBoss ist nur ein Software-Unternehmen wie Apache, IBM, Sun/Oracle, etc. Unter anderem sind sie Schöpfer von Weld, einer CDI-Implementierung, die zufällig von WebSphere verwendet wird. Es ist nicht der JBoss AS orso, wie du denkst. Sie fragen sich auch nicht, was genau diese Sun-Klassen dort auf Ihrem IBM-Server tun, oder? Das ist nicht ihr GlassFish-Server, sondern nur ihre JAX-RS-Implementierung, die zufällig von WebSphere verwendet wird. – BalusC

+0

WebSphere verwendet Jersey nicht als JAX-RS-Implementierung. – Alasdair

Antwort

0

kommen, Könnten Sie bitte die folgende Funktion in Ihrem server.xml anstelle seiner älteren Version und das Ergebnis aktivieren?

<feature>jaxrs-2.0</feature>

+0

Nicht sicher, wie dies helfen würde, wenn Jersey verwendet wird und nicht die Libery JAX-RS-Implementierungen. – Alasdair

+0

Könnten Sie "gemeinsamen, minimalen, überprüfbaren" Code teilen? –

Verwandte Themen