Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 介绍EhCache断开的web应用(无错误消息)_Java_Hibernate_Tomcat7_Ehcache - Fatal编程技术网

Java 介绍EhCache断开的web应用(无错误消息)

Java 介绍EhCache断开的web应用(无错误消息),java,hibernate,tomcat7,ehcache,Java,Hibernate,Tomcat7,Ehcache,此问题与之前发布的问题类似,因此: 然而,通过遵循建议的两项更改,问题仍然存在: 确保ehcache.xml位于WEB-INF/classes中 确保Tomcat的版本为7.0.52或更高版本 (我正在运行Tomcat 7.0.69) 当我将EhCache引入webapp时,它根本没有启动。那里 没有错误消息 在catalina.log中,它只是简单地说 Jan 26, 2017 5:34:49 PM org.apache.catalina.core.StandardContext start

此问题与之前发布的问题类似,因此:

然而,通过遵循建议的两项更改,问题仍然存在:

  • 确保ehcache.xml位于WEB-INF/classes中
  • 确保Tomcat的版本为7.0.52或更高版本
  • (我正在运行Tomcat 7.0.69)

    当我将EhCache引入webapp时,它根本没有启动。那里 没有错误消息

    在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
    

    webapp可以在我的开发环境(在Eclipse中)中启动,但拒绝在已部署的环境(在tomcat上运行)中启动。

    事实证明,问题是我忘记签入更新版本的
    hibernate.cfg.xml
    。部署的环境缺少此文件,因此webapp无法启动

    让这个bug难以追踪的原因是根本没有错误消息。直到我的同事告诉我她也不能用这个错误消息启动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)
    
    org.hibernate.cache.NoCacheRegionFactoryAvailableException:
    应用程序中使用了二级缓存,但属性
    未提供hibernate.cache.region.factory\u类,请
    禁用二级缓存或设置正确的区域
    属性hibernate.cache.region.factory\u类的工厂类名称
    (并确保第二级缓存提供程序hibernate infinispan在类路径中可用)。
    位于org.hibernate.cache.internal.nocachGregionFactory.buildEntityRegion(nocachGregionFactory.java:69)
    位于org.hibernate.internal.sessionfactorympl。(sessionfactorympl.java:348)
    位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1760)
    
    换句话说,由于某些原因,错误消息是在Eclipse中打印的,而不是在tomcat中打印的

    我希望tomcat、hibernate和/或ehcache能够在部署的环境中发出更有意义的错误消息

    通过分享这个故事,我希望它能帮助人们在将来更快地解决类似的问题