RichFaces на Weblogic 9.2.1 - PullRequest
1 голос
/ 16 мая 2011

Я пытался развернуть приложение в 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.

Ответы [ 2 ]

4 голосов
/ 16 мая 2011
java.lang.NoClassDefFoundError: javax/faces/component/visit/VisitContext

Это JSF 2.0, специфичный , который, в свою очередь, требует контейнера Servlet 2.5 с web.xml заявленным соответствием спецификации Servlet 2.5.Я не работаю с Weblogic, поэтому не могу сказать с самого начала, но Google узнает, что Weblogic 9.2.x является контейнером Servlet 2.4.

Итак, JSF 2.0 не будет работать на Weblogic 9.2.x из коробки в любом случае.У вас есть 2 варианта:

  1. Обновите контейнер до версии / версии с поддержкой Servlet 2.5.Например, Weblogic 10.x, Glassfish 2.x, JBoss AS 5.x, Tomcat 6.x и т. Д. Сервлет 2.5 уже выпущен более 5 лет назад.
  2. Понизьте JSF 2.0 до JSF 1.2 и RichFaces 4.xв RichFaces 3.x.При использовании Facelets вместо JSP он должен работать на Servlet 2.4.

В теории вы можете , однако взломать ваше веб-приложение JSF 2.0 с помощью специальных библиотек, чтобы получитьэто запустить на сервлете 2.4 контейнера.Я только не гарантирую, что он будет работать безупречно в Weblogic вместе с RichFaces.

0 голосов
/ 16 мая 2011

Может возникнуть конфликт с JAR-файлами WebLogic. Удалите свой или сообщите WebLogic, чтобы он предпочитал классы, найденные в WEB-INF / lib, используя <prefer-web-inf-classes>:

http://download.oracle.com/docs/cd/E12840_01/wls/docs103/programming/classloading.html

...