2017-01-27 1 views
0

Этот вопрос похож на тот, публикуемую ранее на SO:Представляя Ehcache сломал веб-приложение (не сообщение об ошибке)

Ehcache causing Tomcat 7 to give 404

Однако, после двух изменений, предложенных, проблема все еще существует:

  1. Убедитесь, что ehcache.xml находится в WEB-INF/классы
  2. Убедитесь, что Tomcat имеет 7.0.52 или более поздней версии

(я бегу Tomcat 7.0.69)

Webapp просто не запускался, когда я ввел в него EhCache. Там не было сообщений об ошибках.

В catalina.log, он просто сказал, что

Jan 26, 2017 5:34:49 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: One or more listeners failed to start. Full details will 
be found in the appropriate container log file 
Jan 26, 2017 5:34:49 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Context [/myWebApp] startup failed due to previous errors 

И в собственном журнале моего WebAPP, я мог видеть только то, что слушатель MyListener просто сказал, что контекст был инициализирован, а затем он был также немедленно уничтожены. Не было никаких указаний относительно того, что вызвало немедленное уничтожение.

2017-01-26 17:34:48,242 [op-2] INFO MyListener,localhost-startStop-2:62 
- contextInitialized(): creating hibernate session factory 
2017-01-26 17:34:49,437 [op-2] INFO MyListener,localhost-startStop-2:138 
- contextDestroyed(): shutting down Quartz scheduler 

веб-приложение может начаться в моей среде разработки (в Eclipse), но отказался начать в развернутой среде (работать на коте).

ответ

0

Оказалось, что проблема в том, что я забыл зарегистрировать обновленную версию hibernate.cfg.xml. Развернутая среда пропустила этот файл, чтобы Webapp не смог запустить.

Что заставило эту ошибку трудно отследить, там вообще не было сообщений об ошибках. Только после того, как мой коллега сказал мне, что она тоже не могла начать веб-приложение (в ее среде Eclipse) с этим сообщением об ошибке, я понял, что я забыл проверить в hibernate.cfg.xml

org.hibernate.cache.NoCacheRegionFactoryAvailableException: 
Second-level cache is used in the application, but property 
hibernate.cache.region.factory_class is not given, please 
either disable second level cache or set correct region 
factory class name to property hibernate.cache.region.factory_class 
(and make sure the second level cache provider, hibernate-infinispan, for example, is available in the classpath). 
     at org.hibernate.cache.internal.NoCachingRegionFactory.buildEntityRegion(NoCachingRegionFactory.java:69) 
     at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:348) 
     at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1760) 

Другими словами, по некоторым причинам сообщения об ошибках были напечатаны в Eclipse, но не tomcat.

Я надеюсь, что tomcat, hibernate и/или ehcache могли бы выплюнуть более значимые сообщения об ошибках в развернутой среде.

Разделяя эту историю, я надеюсь, что это поможет кому-то быстрее решить подобную проблему в будущем.

Смежные вопросы