Отказ JSF 2.0 + Icefaces 2.0.0 Beta2 и Tomcat 7 - PullRequest
2 голосов
/ 03 ноября 2010

У меня есть существующий проект JSF 2.0, работающий на сервере Tomcat 7.0.4. Я пытаюсь добавить Icefaces 2.0.0 Beta2 к этому проекту. Я скачал файл ICEfaces-2.0.0-Beta2-bin.zip с официальной домашней страницы Icefaces и следовал инструкциям, описанным здесь .

Я скопировал 4 файла icefaces.jar, icepush.jar, icefaces-ace.jar и icefaces-compat.jar из каталога ICEfaces-2.0.0-Beta2-bin/icefaces/lib в каталог WEB-INF/lib (тот, в который я включил все мои файлы jar). jsf-api.jar и jsf-impl.jar уже были включены в мой проект, поэтому они не были скопированы.

Когда я развернул веб-приложение на сервере Tomcat 7, произошла следующая ошибка:

/home/user > ant deploy reload

Buildfile: build.xml

build:

deploy:

reload:
   [reload] FAIL - Encountered exception java.lang.IllegalStateException: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/wtree-www] has not been started

BUILD FAILED
FAIL - Encountered exception java.lang.IllegalStateException: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/wtree-www] has not been started

Total time: 0 seconds

Это из catalina.log, я думаю, это может быть интересно:

INFO: JSF1048: PostConstruct/PreDestroy annotations present.  ManagedBeans methods marked with these annotations will have said annotations processed.
Nov 2, 2010 10:04:42 PM org.icepush.servlet.MainServlet <init>
INFO: 
ICEsoft Technologies Inc.
ICEpush 2.0.0 Beta2
Build number: 13
Revision: 22877

Nov 2, 2010 10:04:43 PM org.icefaces.util.EnvConfig init
INFO: ICEfaces Configuration: 
org.icefaces.render.auto: true [default]
org.icefaces.autoid: true [default]
org.icefaces.aria.enabled: true [default]
org.icefaces.blockUIOnSubmit: false [default]
org.icefaces.compressDOM: false [default]
org.icefaces.compressResources: true [default]
org.icefaces.connectionLostRedirectURI: null [default]
org.icefaces.deltaSubmit: false [default]
org.icefaces.lazyPush: true [default]
org.icefaces.sessionExpiredRedirectURI: null [default]
org.icefaces.standardFormSerialization: false [default]
org.icefaces.strictSessionTimeout: false [default]
org.icefaces.windowScopeExpiration = 1000 [default]  
Nov 2, 2010 10:04:43 PM org.icefaces.impl.renderkit.DOMRenderKit <clinit>
INFO: 
ICEsoft Technologies Inc.
ICEfaces 2.0.0 Beta2
Build number: 003
Revision: 22976

Nov 2, 2010 10:04:43 PM com.sun.faces.config.ConfigManager initialize
INFO: Unsanitized stacktrace from failed start...
com.sun.faces.config.ConfigurationException: 
  Source Document: jar:file:/opt/apache-tomcat-7.0.4/webapps/wtree-www/WEB-INF/lib/icefaces-compat.jar!/META-INF/faces-config.xml
  Cause: Class 'com.icesoft.faces.component.effect.ApplyEffectRenderer' is missing a runtime dependency: java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
 at com.sun.faces.config.processor.AbstractConfigProcessor.createInstance(AbstractConfigProcessor.java:275)
 at com.sun.faces.config.processor.RenderKitConfigProcessor.addRenderers(RenderKitConfigProcessor.java:309)
 at com.sun.faces.config.processor.RenderKitConfigProcessor.process(RenderKitConfigProcessor.java:175)
 at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:110)
 at com.sun.faces.config.processor.ManagedBeanConfigProcessor.process(ManagedBeanConfigProcessor.java:266)
 at com.su ..... 
......
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
 at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.<clinit>(DomBasicRenderer.java:61)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
.....
Nov 2, 2010 10:04:43 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Nov 2, 2010 10:04:43 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/wtree-www] startup failed due to previous errors

Я не понимаю, как копирование 4 файлов может вызвать эту ошибку. Я больше ничего не сделал. Не могли бы вы мне помочь?

1 Ответ

2 голосов
/ 03 ноября 2010

Как обычно, часть caused by в трассировке стека исключений говорит о первопричине проблемы.В вашем случае это следующее:

Caused by: java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

Это довольно очевидно.Упомянутый класс отсутствует в пути к классам во время выполнения.Добавьте commons-logging.jar к /WEB-INF/lib и эта конкретная проблема должна исчезнуть.Если у вас его еще нет в другом месте (возможно, в IceFaces?), Вы можете получить его по адресу http://commons.apache.org/logging.

...