Java JSF2.0和Hibernate错误

Java JSF2.0和Hibernate错误,java,hibernate,jsf,tomcat6,jsf-2,Java,Hibernate,Jsf,Tomcat6,Jsf 2,我将应用程序部署到官方服务器,并开始出现以下错误: 堆栈跟踪: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401) org.apache.jasper.servlet.JspServlet.serviceJsp

我将应用程序部署到官方服务器,并开始出现以下错误:

堆栈跟踪: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javaservlet.http.HttpServlet.service(HttpServlet.java:717)

根本原因

javax.servlet.ServletException: java.lang.NoClassDefFoundError:无法 未初始化类app.HibernateUtil org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791) org.apache.jsp.ajax.search\u jsp.\u jsp服务(search\u jsp.java:67) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javaservlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javaservlet.http.HttpServlet.service(HttpServlet.java:717)

根本原因

java.lang.NoClassDefFoundError:无法 未初始化类app.HibernateUtil PersistanceHelper.(PersistanceHelper.java:23) SearchBean.(SearchBean.java:26) org.apache.jsp.ajax.search\u jsp.\u jsp服务(search\u jsp.java:54) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javaservlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javaservlet.http.HttpServlet.service(HttpServlet.java:717)


在部署之前,该应用程序运行良好。我的HibernateUtil类是由Netbeans向导生成的。我看不出问题出在哪里。我花了一些时间在谷歌上搜索类似的问题,但找到的答案(缺少罐子、拼写错误等)不适用于此解决方案,因为它可以在我的电脑上运行,只是不能在官方服务器上运行。有什么想法吗?如果需要,我可以添加其余的源代码。Apache Tomcat日志不包含任何错误。谢谢你的帮助

我认为您的类位于类路径上,但是
类加载器在尝试加载类时遇到错误(如消息所示)。这通常发生在类具有静态块或静态成员时,这些静态块或静态成员使用
类装入器无法找到的

在这个生成的
HibernateUtil.java
的特殊情况下,它应该有如下内容:

static {
  URL myurl = Thread.currentThread().getContextClassLoader().getResource("/some/path/to/hibernate.cfg.xml");
  sessionFactory = new Configuration().configure(myurl).buildSessionFactory();
}
因此:

  • 确保存在预期的hibernate配置文件
  • 确保目标机器的类路径上存在Hibernate JAR
  • 可能在静态块中添加一个
    try{…}catch(Throwable t){…}
    来记录错误

您应该阅读Hibernate发行版附带的用户文档。Hibernate JAR对其他JAR有一系列运行时依赖性,例如一些Apache Commons JAR和“slf4j”JAR。如果这些在运行时丢失,那么即使所有Hibernate JAR都在正确的位置,Hibernate也不会运行