【问题标题】:Hibernate Utils failing to run in JSP PageHibernate Utils 无法在 JSP 页面中运行
【发布时间】:2012-02-22 20:42:26
【问题描述】:

这是我第一次使用 Hibernate,我可以在本地机器上运行一切正常,但是当我将网站部署到教授的 tomcat 网络服务器时,我收到以下错误消息。我在 UsersHelper 构造函数中所做的只是从 HibernateUtils 中的 SessionFactory 获取会话。

这里是 HibernateUtil:http://www.copypastecode.com/173998/

和用户助手:http://www.copypastecode.com/174002/

org.apache.jasper.JasperException: 在第 35 行处理 JSP 页面 /users.jsp 时发生异常

32:             try{
33:                  
34:                 
35:                 UsersHelper u = new UsersHelper();
36:                 
37:                 List<Users> userList = u.getAllUsers();
38:                 

堆栈跟踪:

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)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

根本原因

javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class org.myworkspace.hbconnect.HibernateUtil
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
    org.apache.jsp.users_jsp._jspService(users_jsp.java:281)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.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)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

根本原因

java.lang.NoClassDefFoundError: Could not initialize class org.myworkspace.hbconnect.HibernateUtil
    org.myworkspace.hbconnect.UsersHelper.<init>(UsersHelper.java:19)
    org.apache.jsp.users_jsp._jspService(users_jsp.java:241)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.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)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

【问题讨论】:

  • 看看你的堆栈跟踪,在 UserHelper 的构造/初始化过程中出了点问题
  • 你能发布你的 org.myworkspace.hbconnect.HibernateUtil 类吗?
  • 我在上面的类文件中添加了链接。
  • 在堆栈跟踪中进一步查看。有一个ExceptionInInitializerError 又包含真正的 根本原因。 包含了你的问题的答案。

标签: java hibernate jsp tomcat


【解决方案1】:
java.lang.NoClassDefFoundError: Could not initialize class org.myworkspace.hbconnect.HibernateUtil

运行时类路径中缺少提到的类。它必须作为独立的类文件 (.class) 在运行时类路径中或打包在 JAR 文件 (.jar) 中。

默认情况下,webapp 的 myWebapp/WEB-INF/libmyWebapp/WEB-INF/classes 文件夹被运行时类路径覆盖。

任何 3rd 方 webapp 特定的JAR 文件都应该放在myWebapp/WEB-INF/lib 中。任何特定于 webapp 的类(servlet 等)都应该放在myWebapp/WEB-INF/classes 中。

在部署时检查您是否放置了正确的.class 文件和.jar。 希望这会有所帮助。

【讨论】:

  • 我所有部署的文件都在正确的位置。用于休眠的 jar 文件在 myWebapp/WEB-INF/lib 中,我的类在 class 文件夹中。
猜你喜欢
  • 1970-01-01
  • 2013-03-30
  • 1970-01-01
  • 2012-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多