严重: Servlet.service() for servlet action threw exception
我在写一个登录界面,开发环境是myeclipse,用了hibernate框架,定义了一个baseDAO处理数据库。出错是因为调用了baseDAO的create方法:bas...
我在写一个登录界面,开发环境是myeclipse,用了hibernate框架,定义了一个baseDAO处理数据库。出错是因为调用了baseDAO的create方法:baseDAO.create(user);程序中该方法的定义为:
public class BaseDAO<T> {
public void create(T object){ //插入数据
//Session session=HibernateSessionFactory.getSessionFactory().openSession();
SessionFactory sessionFactory = HibernateSessionFactory.getSessionFactory();
Session session = sessionFactory.openSession();
try {
session.beginTransaction();
session.persist(object);
session.getTransaction().commit();
}catch(Exception e){
session.getTransaction().rollback();
}finally{
session.close();
}
}
}
跪求大神看怎么改???
下面是报错信息:
严重: Servlet.service() for servlet action threw exception
java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
at org.hibernate.annotations.common.util.impl.LoggerFactory.make(LoggerFactory.java:34)
at org.hibernate.annotations.common.Version.<clinit>(Version.java:34)
at org.hibernate.annotations.common.reflection.java.JavaReflectionManager.<clinit>(JavaReflectionManager.java:73)
at org.hibernate.cfg.AnnotationConfiguration.reset(AnnotationConfiguration.java:248)
at org.hibernate.cfg.Configuration.<init>(Configuration.java:178)
at org.hibernate.cfg.Configuration.<init>(Configuration.java:182)
at org.hibernate.cfg.AnnotationConfiguration.<init>(AnnotationConfiguration.java:103)
at com.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:26)
at com.dao.BaseDAO.create(BaseDAO.java:15)
。。。
我猜测是jdk版本问题,开始用的是jdk1.6,后来换成了1.7,但是还是这个问题,求指教 展开
public class BaseDAO<T> {
public void create(T object){ //插入数据
//Session session=HibernateSessionFactory.getSessionFactory().openSession();
SessionFactory sessionFactory = HibernateSessionFactory.getSessionFactory();
Session session = sessionFactory.openSession();
try {
session.beginTransaction();
session.persist(object);
session.getTransaction().commit();
}catch(Exception e){
session.getTransaction().rollback();
}finally{
session.close();
}
}
}
跪求大神看怎么改???
下面是报错信息:
严重: Servlet.service() for servlet action threw exception
java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
at org.hibernate.annotations.common.util.impl.LoggerFactory.make(LoggerFactory.java:34)
at org.hibernate.annotations.common.Version.<clinit>(Version.java:34)
at org.hibernate.annotations.common.reflection.java.JavaReflectionManager.<clinit>(JavaReflectionManager.java:73)
at org.hibernate.cfg.AnnotationConfiguration.reset(AnnotationConfiguration.java:248)
at org.hibernate.cfg.Configuration.<init>(Configuration.java:178)
at org.hibernate.cfg.Configuration.<init>(Configuration.java:182)
at org.hibernate.cfg.AnnotationConfiguration.<init>(AnnotationConfiguration.java:103)
at com.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:26)
at com.dao.BaseDAO.create(BaseDAO.java:15)
。。。
我猜测是jdk版本问题,开始用的是jdk1.6,后来换成了1.7,但是还是这个问题,求指教 展开
2个回答
展开全部
报的是找不到方法,你有用到jboss,对应的包导入了没,出错应该不是业务代码,而是 SessionFactory sessionFactory = HibernateSessionFactory.getSessionFactory();
好像就开始出问题了
好像就开始出问题了
追问
对的,我debug了一下,就是那一句出错了。
这是我导入的包,还差什么?
追答
java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger
看异常信息么。少 org.jboss.logging.Logger的getMessageLogger方法
大概原因是JAR包的版本可能不兼容,或者你JDK不支持这个版本的JAR?细节原因就不清楚了,只能给这样的建议,抱歉。。
代码的JDK版本和JAR包,还有服务器的JDK要一致,不是说哪边换一个最高版本的就完事了。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询