2012-05-16 69 views
2

我的GlassFish 3.1.2 web服務器正常工作,正常Java POJO的Java SE 1.6。 JAVA_HOME,JAVA_PATH和JRE_HOME變量設置正確。我正在使用Linux CentOS6.2,並且我正在從vi和命令行執行所有Java工作(例如,沒有像Spring,Eclipse等框架或工具)。包javax.servlet.http不存在但是servlet-api.jar的確如此

現在我想使用Java servlet和我得到的錯誤,如:

package javax.servlet.http does not exist 

我以爲,因爲我的環境路徑設置正確,該servlet的文件將在編譯過程可見。顯然情況並非如此。

任何人都知道如何解決這個錯誤?如果要在我的linux目錄中搜索,我希望爲servlet jar文件找到哪個文件名?任何人都知道該文件位於JDK 1.6的JAVA_HOME的起始位置?

或者,servlet相關的文件不是jdk 1.6的一部分,需要單獨下載安裝嗎?

UPDATE:

如果我從Linux提示符鍵入locate servlet-api.jar,它返回內部我GlassFish安裝目錄(例如~/glassfish3/glassfish/modules/javax.servlet-api.jar)的路徑。因此,如下所述,它是GlassFish安裝的一部分。

+1

Servlet JAR不是JDK 6的一部分;你必須單獨下載它們。他們通常帶有一個Java應用服務器,如Tomcat或JBOSS。它們是Java EE規範的一部分,因此每個兼容的服務器都會有一個servlet.jar。 – duffymo

回答

3

servlet API不是Java SE的一部分,而是Java EE的一部分。它不與JDK捆綁在一起。在Glassfish安裝中找到javaee jar文件,並將其放入編譯類路徑中。

+1

對於GlassFish(至少),將路徑添加到'glassfish3/glassfish/modules/javax.servlet-api.jar'也適用。 – ggkmath

4

你需要在你的classpath servlet-api時被編譯它,它可能與服務器是有,但它會在運行時使用(在編譯時)

+1

Glassfish沒有「servlet-api.jar」文件。這是Tomcat特有的。 – BalusC

+0

好的。所以確保它在運行時也可用 –

+0

@JigarJoshi:BalusC的要點是servlet-api jar不是Glassfish的一部分,但javaee jar文件是,並且當然包含servlet api類。沒有理由在Glassfish的運行時類路徑中添加servlet-api.jar。 –

2

請確保您有的servlet-api.jar文件在你的類路徑中,因爲它不是標準Java SDK的一部分。

+0

Glassfish沒有「servlet-api.jar」文件。這是Tomcat特有的。 – BalusC

相關問題