我尝试在Weblogic 9.2.1上部署应用程序,但收到此错误:

org.richfaces.component.html.HtmlSubTable
javax.faces.FacesException: javax.faces.FacesException: Cant instantiate class: org.richfaces.component.html.HtmlSubTable.
        at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:545)
        at com.sun.faces.config.ConfigureListener.verifyObjects(ConfigureListener.java:1302)
        at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:397)
        at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:376)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        Truncated. see log file for complete stacktrace
javax.faces.FacesException: Cant instantiate class: org.richfaces.component.html.HtmlSubTable.
        at com.sun.faces.application.ApplicationImpl.newThing(ApplicationImpl.java:1016)
        at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:539)
        at com.sun.faces.config.ConfigureListener.verifyObjects(ConfigureListener.java:1302)
        at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:397)
        at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:376)
        Truncated. see log file for complete stacktrace
java.lang.NoClassDefFoundError: javax/faces/component/visit/VisitContext
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2395)
        at java.lang.Class.getDeclaredMethods(Class.java:1763)
        at java.beans.Introspector$1.run(Introspector.java:1265)
        at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1263)
        Truncated. see log file for complete stacktrace


我已经尝试了很多方法来解决此问题,但是到目前为止我还不了解这个问题。我在WEB-INF / lib上检查了我的库,这些库是正确的。
我认为由于Weblogic的库JSF会出现此问题。

最佳答案

java.lang.NoClassDefFoundError: javax/faces/component/visit/VisitContext



这是JSF 2.0 specific,这又需要一个带有web.xml声明符合Servlet 2.5规范的Servlet 2.5容器。我不做Weblogic,所以从头上讲不清,但Google得知我说Weblogic 9.2.x是Servlet 2.4容器。

因此,无论如何,JSF 2.0都无法在Weblogic 9.2.x上正常工作。您有2个选择:


将容器升级到支持Servlet 2.5的版本。例如。 Weblogic 10.x,Glassfish 2.x,JBoss AS 5.x,Tomcat 6.x等。Servlet 2.5已有5多年的历史了。
将JSF 2.0降级为JSF 1.2,将RichFaces 4.x降级为RichFaces3.x。当使用Facelets代替JSP时,它应该可以在Servlet 2.4上运行。


从理论上讲,您可以使用特定的库对JSF 2.0 Web应用程序进行破解,以使其在Servlet 2.4容器上运行。我只是不保证它会与RichFaces一起在Weblogic上完美运行。


Running JSF 2.0 on Servlet 2.4 container

关于java - Weblogic 9.2.1上的RichFaces,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6021231/

10-13 04:59