在ec2上加载一个基于hibernate的runnable jar,我突然得到一个未找到hibernate.cfg.xml的异常。
233 [main] FATAL com.mcruiseon.server.hibernate.ReadOnlyOperations - Unable to create SessionFactory for Hibernate
233 [main] FATAL com.mcruiseon.server.hibernate.ReadOnlyOperations - ./hibernate.cfg.xml not found
234 [main] FATAL com.mcruiseon.server.hibernate.ReadOnlyOperations - org.hibernate.HibernateException: ./hibernate.cfg.xml not found
org.hibernate.HibernateException: ./hibernate.cfg.xml not found
at org.hibernate.internal.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:173)
at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1929)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1910)
以下是包含cfg.xml文件的文件夹的快照。
我正在尝试使用以下代码片段初始化hibernate。它只与configure()
合作,出于某种原因,它只是停止了工作。
Configuration configuration = new Configuration().configure("./hibernate.cfg.xml");
sessionFactory = configuration.buildSessionFactory(new ServiceRegistryBuilder().buildServiceRegistry());
编辑:更糟糕的是,我现在开始收到log4j问题。我只是度过了糟糕的一天。
INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@480457
Exception in thread "main" java.lang.NoSuchFieldError: TRACE
at org.jboss.logging.Log4jLogger.translate(Log4jLogger.java:58)
at org.jboss.logging.Log4jLogger.isEnabled(Log4jLogger.java:39)
at org.jboss.logging.Logger.tracev(Logger.java:197)
答案 0 :(得分:1)
我无法在这里看到您的根目录。但是如果../mcruiseOn/mcruiseOserver/是root,那么试着把它放在那里。并将其称为“/hibernate.cfg.xml”。你的hibernate xml没有任何问题,除了放置它的路径。
答案 1 :(得分:1)
我建议你这样做:
1)尝试检查hibernate.cfg.xml的系统权限是否具有rw权限
2)而是尝试给出可能有帮助的绝对路径。
答案 2 :(得分:0)
根本原因:当我们从Hibernate 3.5迁移到4.0时,我们不应该从3.5替换jpa库。我使用不正确的log4j也发生了冲突。我不得不使用"正在开发" log4j 1.2.12,而不是1.2.9(稳定)发布,以使这个工作。总而言之,所有升级都是痛苦的,并且会产生各种疯狂的副作用。
谢谢@Arham和@Raunak,你最有用。好的提示。