繁体   English   中英

为什么Tomcat / JSP看不到这些类?

[英]Why can't Tomcat/JSP see these classes?

我正在尝试在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中的那些文件工作正常,所以我迷路了。

任何帮助,将不胜感激。

Only a type can be imported. XXXXX resolves to a package.

以上通常意味着容器无法找到类文件。

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

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

除了hibernate之外,你在WEB-INF / lib中还有其他JAR吗? 我有一个类似的问题:tomcat没有在WEB-INF / lib中看到JAR,但在全局lib目录中使用相同的文件。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM