2011-09-27 102 views
1

我有一個Web應用程序運行在一個(很舊,我知道,但我無法升級)Tomcat 3.3.2最終的servlet容器和我最近升級了虛擬機它運行在Java 6上。這很順利,所以我試圖在應用程序的JSP中使用Java 5特性(特別是泛型),但是它失敗了,不喜歡語法。對於它的價值,我把這麼簡單的東西:強制Tomcat 3.3編譯器將Java編譯爲Java 1.5

java.util.List<String> users= new java.util.Vector<String>(); 

到JSP,讓碧玉編譯它,但我發現了一個編譯錯誤。我知道Tomcat正在使用正確的JVM,但似乎沒有使用「-source 1.5」標誌或等效標誌。有誰知道我可以如何強制我的Tomcat編譯爲Java 5?

回答

1

您必須指定要在servlet配置文件使用虛擬機版本(web.xml中):

<init-param> 
    <param-name>compilerSourceVM</param-name> 
    <param-value>1.5</param-value> 
</init-param> 
<init-param> 
    <param-name>compilerTargetVM</param-name> 
    <param-value>1.5</param-value> 
</init-param> 
+0

我把代碼片段到我的應用程序的WEB-INF/web.xml中,僅低於頂層元素(即作爲''的直接子元素),但它仍然沒有幫助。還有其他建議嗎? – Raj

+0

我一直無法找到證據,但我懷疑泛型只支持新版本的Servlet規範。我相信支持Java 1.5語言特性的規範的最早版本是Tomcat 5.5.x支持的Servlet 2.4/JSP 2.0。請參閱[Apache Tomcat版本](http://tomcat.apache.org/whichversion.html)。 – gcastro

+0

我擔心情況可能如此。感謝您的調查。 – Raj