【发布时间】:2011-09-19 18:00:00
【问题描述】:
我正在尝试在 Tomcat 7.0.14 上使用 JSP 和 Java 编写 Web 应用程序,其中一部分涉及使用 Hibernate 连接 MySQL 服务器。
这是我的目录结构的基本视图:
apache-tomcat-7.0.14
|- webapps
|- ROOT
|- WEB-INF
| |- classes
| | |- some-package-path
| | \- foo.java
| | \- foo.class
| |- lib
| \- hibernate3.jar
\- file_giving_issues.jsp
现在,您可能已经猜到,“file_giving_issues.jsp”是给我问题的文件。它看不到各种hibernate jar文件中包含的类。我使用了以下语句:
<%@ page import="org.hibernate.Session" %>
在这里,Tomcat 告诉我,
Only a type can be imported. org.hibernate.Session resolves to a package.
顺便说一句,这不是真的; Session 绝对是一种类型,而不是一个包,它在 hibernate3.jar 中。更具体地说,它存在于此处:
WEB-INF/lib/hibernate3.jar/org/hibernate/Session.class
但我想我会打球并从 org.hibernate 导入所有内容,如下所示:
<%@ page import="org.hibernate.*" %>
更令人费解的是,Tomcat 现在告诉我,
Session cannot be resolved to a type.
所以,我有点不知所措。我不确定这是否与 Tomcat 的配置方式或我的类目录结构有关,或者我是否不了解 JAR 的工作方式,或者是什么。据我了解,WEB-INF/lib 中的 JAR 文件应该始终位于 Tomcat 的 Classpath 中,而 WEB-INF/classes/some-package-path 中的那些文件工作正常,所以我迷路了。
任何帮助将不胜感激。
【问题讨论】:
-
您的意思是在 ROOT 应用程序目录中而不是在 webapps 目录中表示您的 file_giving_issues.jsp?
-
哈,是的,谢谢。立即修复。
-
注意:这是问题的问题,而不是结构本身的问题。也就是说,问题仍然存在。
-
我认为是这样。没有立即的答案,但想排除“但它不在那个 webapp 中”!
-
只是 Hibernate jars 吗?尝试从 WEB-INF/lib 中的任何其他 jar 导入类时是否遇到相同的错误?