【问题标题】:Why can't Tomcat/JSP see these classes?为什么 Tomcat/JSP 看不到这些类?
【发布时间】: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 导入类时是否遇到相同的错误?

标签: java hibernate jsp tomcat


【解决方案1】:
Only a type can be imported. XXXXX resolves to a package.

以上通常表示容器找不到类文件。

你能看看你是否能够导入其他的 jar 或类吗?我的意思是,调试;创建一个简单的 hello world JSP 并导入您的一些自定义类,看看您是否可以使用它。

另外,请确认 Session 类确实存在于您的 lib 目录中的一个 jar 中。

【讨论】:

  • 正如我所提到的,我可以从WEB-INF/classes 导入任何我想要的东西。只有lib 目录中的JAR 我无法访问。是的,Session 绝对是它应该在适当的罐子里的地方。它位于此处:`WEB-INF/lib/hibernate3.jar/org/hibernate/Session.class'。我可能应该在上面添加这个。
【解决方案2】:

除了 hibernate 之外,您在 WEB-INF/lib 中是否还有其他 JAR? 我有一个类似的问题:tomcat 没有在 WEB-INF/lib 中看到 JAR,但是在全局 lib 目录中的相同文件上工作正常。

就我而言,我从 WEB-INF/lib 中删除了一些未使用的遗留文件,它突然开始工作了。
看来,tomcat 不会从 WEB-INF/lib 加载某些文件(例如,它会抱怨任何带有 javax.servlet 类的文件),并且会默默地忽略其他文件。

【讨论】:

    猜你喜欢
    • 2017-03-21
    • 1970-01-01
    • 2015-07-04
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多