【发布时间】:2016-04-07 23:08:31
【问题描述】:
我正在学习 hibernate 4,但陷入了创建 Session Factory 的困境 请检查我的代码并帮助我找出问题的原因,因为我正在使用 hibernate-core 5.0.6、MySQL 连接器 5.0.8、log4j 1.2.17、jta jar、dom4j 和 jboss-logging jar,这是我的会话工厂代码
class HibernateUtill
{
private static final SessionFactory sessionFactory;
static {
try {
Logger logger = Logger.getLogger("Mylogger");
logger.info("Trying to create a test connection with database");
Configuration configuration = new Configuration().configure();
configuration.configure();
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration
.getProperties());
sessionFactory = configuration.buildSessionFactory(builder.build());
} catch (Throwable ex) {
System.out.println("SessionFactory creation failed with error" + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void shutDown() {
sessionFactory.close();
}
}
我得到的错误是:
log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
SessionFactory creation failed with errororg.hibernate.internal.util.config.ConfigurationException: Could not locate cfg.xml resource [hibernate.cfg.xml]
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.commonClasses.HibernateUtil.<clinit>(HibernateUtil.java:19)
at com.java.save.SavingObject.savingObject(SavingObject.java:13)
at com.java.save.SavingObject.main(SavingObject.java:31)
Caused by: org.hibernate.internal.util.config.ConfigurationException: Could not locate cfg.xml resource [hibernate.cfg.xml]
at org.hibernate.boot.cfgxml.internal.ConfigLoader.loadConfigXmlResource(ConfigLoader.java:53)
at org.hibernate.boot.registry.StandardServiceRegistryBuilder.configure(StandardServiceRegistryBuilder.java:163)
at org.hibernate.cfg.Configuration.configure(Configuration.java:259)
at com.commonClasses.HibernateUtil.<clinit>(HibernateUtil.java:12)
... 2 more
或者简单来说errororg.hibernate.internal.util.config.ConfigurationException:找不到cfg.xml资源
我知道错误是由于 log4j 而我将 log4j.properties 放在 src 文件夹中,属性文件的代码是
# Root logger option
log4j.rootlogger=INFO,stdout
#Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log JDBC bind parameter runtime arguments
log4j.logger.org.hibernate.type=trace
请帮我解决这个错误以及这个错误的原因。 任何帮助表示赞赏, 谢谢。
【问题讨论】:
-
好像缺少一个jar或者它的不同版本(jboss-logging-3.1.0.CR1.jar)stackoverflow.com/questions/12615566/java-noclassdeffound-error
-
是的,现在我明白了,我缺少 jboss-logging、dom4j 和 jta jar,但现在我被其他消息卡住了 无法找到 cfg.xml 资源
标签: java mysql hibernate session log4j