簡體   English   中英

Liberty 上的 Bluemix Web 應用程序在運行時拋出 ClassCastExceptions

[英]Bluemix web app on Liberty is throwing ClassCastExceptions at runtime

我在 Bluemix Liberty 上運行的應用程序開始在對服務的每個 http 請求上拋出 ClassCastException。 Bluemix 環境中有什么變化嗎?

 class com.qw.psence.core.servlet.SkipListController class 
    com.qw.psence.core.servlet.ContactController [INFO ] FFDC1015I: An FFDC Incident has been created: "java.lang.ClassCastException: 
    org.jboss.weld.manager.BeanManagerImpl incompatible with 
    com.sun.jersey.server.impl.cdi.CDIExtension 
    com.ibm.ws.webcontainer.servlet.ServletWrapper.init 181" at 
    ffdc_15.09.19_09.53.35.0.log at 
    com.sun.jersey.server.impl.cdi.CDIExtension.getInitializedExtension(CDIExtension.java:180) 
    [ERROR ] SRVE0271E: Uncaught init() exception created by servlet [jersey-serlvet] in application [myapp]: java.lang.ClassCastException: 
    org.jboss.weld.manager.BeanManagerImpl incompatible with 
    com.sun.jersey.server.impl.cdi.CDIExtension at 
    javax.servlet.GenericServlet.init(GenericServlet.java:244) at 
    com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java
    :394) at com.sun.jersey.server.impl.cdi.CDIComponentProviderFactory.(CDIComponentProviderFactory.java:95) at 
    com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer.initialize
    (CDIComponentProviderFactoryInitializer.java:76) at 
    com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577) at 
com.sun.jersey.spi.container.servlet.WebComponent.configure(WebComponent.java:572) at [internal classes] at 
    com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.configure(ServletContainer.java:332) at 
    com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207) at 
    com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:604) at 
    com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:332) at 
    [internal classes] at 
    com.sun.jersey.spi.container.servlet.WebComponent.configure(WebComponent.java:572) at 
    com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:401) at 
    com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.configure(ServletContainer.java:332) 
    [ERROR ] SRVE0276E: Error while initializing Servlet [jersey-serlvet]: 
    javax.servlet.ServletException: SRVE0207E: Uncaught initialization exception created by servlet at 
    com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:604) at 
    com.sun.jersey.server.impl.cdi.CDIExtension.getInitializedExtension(CDIExtension.java:180) Caused by: java.lang.ClassCastException: 
    org.jboss.weld.manager.BeanManagerImpl incompatible with com.sun.jersey.server.impl.cdi.CDIExtension at 
    com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207) at 
    com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer.initialize(CDIComponentProviderFactoryInitializer.java:76) ... 1 more at 
    com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394) at javax.servlet.GenericServlet.init(GenericServlet.java:244) at 
    com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577) at 
    com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:332) at 
    com.sun.jersey.server.impl.cdi.CDIComponentProviderFactory.
    (CDIComponentProviderFactory.java:95)

Bluemix 運行時最近更新為 Liberty buildpack v2。 為了消除所有類加載問題,請嘗試將您的應用程序作為獨立應用程序推送:

 cf push <yourappname> -p myapp.war

server.xml 文件現在包含許多用於推送獨立應用程序的更新功能(即 jaxrs-2.0)。

如果要使用先前版本的 buildpack,請使用以下命令:

cf push appName -p myapp.war -b liberty-for-java-v1

這篇博文解釋了 Liberty for Java buildpack 中的變化:

https://developer.ibm.com/bluemix/2015/09/08/upcoming-liberty-for-java-buildpack-changes/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM