java.lang.NoClassDefFoundError: org / ajax4jsf / resource / InternetResourceBuilder - PullRequest
0 голосов
/ 31 марта 2011

Мое приложение, которое использует JSF 2 и Richfaces 3.3.3 и mojarra 2.0.2, отлично работает на Glassfish 3.1, но всякий раз, когда я портирую его на Tomcat 7.0.10, каждый раз, когда я получаю одну или другую проблему. Все началось с того, что не удалось обнаружить jsf_core.tld, после чего возникла проблема с рендерингом JSF и, наконец, эта проблема. Наконец, я нашел кое-что, что я упоминаю здесь, и которое я не могу найти способ исправить.

Mar 31, 2011 8:57:52 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! org/ajax4jsf/resource/InternetResourceBuilder
        at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:294)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4651)
        at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5154)
        at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5149)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
        at java.lang.Thread.run(Thread.java:619)
Caused by: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! org/ajax4jsf/resource/InternetResourceBuilder
        at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:357)
        at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:226)
        ... 8 more
Caused by: java.lang.NoClassDefFoundError: org/ajax4jsf/resource/InternetResourceBuilder
        at org.ajax4jsf.renderkit.ChameleonRenderKitFactory.<init>(ChameleonRenderKitFactory.java:62)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:586)
        at javax.faces.FactoryFinder.getImplementationInstance(FactoryFinder.java:472)
        at javax.faces.FactoryFinder.access$400(FactoryFinder.java:139)
        at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:796)
        at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:306)
        at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:294)
        at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:213)
        at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:338)
        ... 9 more

Ответы [ 2 ]

1 голос
/ 12 сентября 2012

У вас есть JAR-файл RichFaces, но нет JAR-файла RichFaces API в пути к классам во время выполнения.

Отслеживание стека является доказательством этого:

Caused by: java.lang.NoClassDefFoundError: org/ajax4jsf/resource/InternetResourceBuilder
    at org.ajax4jsf.renderkit.ChameleonRenderKitFactory.<init>(ChameleonRenderKitFactory.java:62)

Строка at org.ajax4jsf.renderkit.ChameleonRenderKitFactory указывает, что этот конкретный класс был успешно загружен и выполнен (в противном случае он вообще не отображался бы как at xxx в трассировке стека). Этот класс является частью файла JAR RichFaces. InternetResourceBuilder, в свою очередь, является частью JAR-файла RichFaces API. Это очевидно отсутствует в пути к классам во время выполнения. По крайней мере, это именно то, что говорит нам исключение.

0 голосов
/ 31 марта 2011

Из исключения кажется, что Richfaces не может быть найден.Поместите банку в ваш путь к классам (для классов Tomcat WEB-INF / lib или WEB-INF /) и повторите попытку.

...