2011-10-12 30 views
2

我想建立使用Maven Java EE應用程序。我在我的pom.xml如下:的RequestDispatcher類的servlet包中沒有FORWARD_REQUEST_URI場

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
    </dependency> 

http://download.oracle.com/javaee/6/api/constant-values.html#javax.servlet.RequestDispatcher.FORWARD_REQUEST_URI,在FORWARD_REQUEST_URI場應該有,但事實並非如此。

[ERROR] foo.java:[296,53] cannot find symbol 
symbol : variable FORWARD_REQUEST_URI 
location: interface javax.servlet.RequestDispatcher 

項目目錄中沒有其他jar。我解壓了〜/ .m2目錄下的jar文件,它的文件可以追溯到2005年10月5日。當我從pom.xml中刪除依賴項時,它根本不編譯。 (我有Netbeans的EE安裝GlassFish服務器,所以我可以實際使用的服務器的罐子我想?)

回答

3

這個常量Servlet 3.0中引入。它在Servlet 2.5中不存在,另請參閱RequestDispatcher javadoc的Java EE 5版本。如果您使用的是Glassfish 3.x,它是一個Servlet 3.0容器,那麼您應該能夠將pom中的版本更新到3.0。但是它應該是<scope>provided</scope>依賴項。

+0

非常感謝,因爲這http://search.maven.org/#browse%7C-182598336我假設的servlet 3.0是阿爾法。我包括以下內容: 的javax 的JavaEE的Web-API 6.0 提供 但願,這應該解決我已經越來越(Glassfish的下運行的奇怪的問題,它使用它自己的servlet罐子,對嗎?我經常發生permgen錯誤+部署時間非常緩慢。) – ustun

+0

它已經在2009年12月完成。將近2年了。 Glassfish 3是一個全功能的Servlet 3.0容器。在Servlet 3.0容器上使用Servlet 2.5依賴關係的確需要潛在的麻煩。 – BalusC