簡體   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