[英]Tomcat 8.5.27 compilation fails with error 'illegal start of type' for JSP pages when type inference was used
我正在使用tomcat 8.5.27,並且在使用tomcat 8.5.27編譯JSP頁面時,出現了編譯錯誤,指出“類型的非法開始”。
錯誤:
RESTProxy_jsp.java:30: illegal start of type
[javac] _jspx_imports_packages = new java.util.HashSet<>();
^
但是,如果將tomcat更改為Tomcat 7.0.69,則發現Build成功,並且沒有編譯錯誤報告。
經過進一步分析,我發現Tomcat 8.x編譯的JSP頁面與Tomcat 7.x的頁面不同,並且它在JSP文件的編譯版本中添加了以下代碼集,最終導致編譯錯誤。
private static final java.util.Set<java.lang.String> _jspx_imports_packages;
private static final java.util.Set<java.lang.String> _jspx_imports_classes;
static {
_jspx_imports_packages = new java.util.HashSet<>();
_jspx_imports_packages.add("javax.servlet");
_jspx_imports_packages.add("javax.servlet.jsp");
_jspx_imports_packages.add("javax.servlet.http");
_jspx_imports_classes = new java.util.HashSet<>();
_jspx_imports_classes.add("com.abc.studio.xyz.BackEndHandler");
}
我使用的是Java 1.7.0_80,請問任何人都可以告知我為什么使用JDK 7卻收到此錯誤,並且我們都知道Java 7支持類型推斷。
將tools.jar升級到Java 8后,此問題已解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.