2015-03-25 65 views
0

我部署我的第7 tomcat的web应用到我的生产服务器,我有麻烦......类型不匹配:不能从ArrayList中<?>转换为ArrayList的<String>在Tomcat的7

的Web应用程序完美的作品上我的开发机器在Eclicpse Luna内部安装了tomcat 7。 但是,当我试图在生产服务器上运行(Ubuntu的12.04 + Tomcat的7 +的OpenJDK-7的JRE,无头),login.jsp页面给了我很多的编译错误的:

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 10 in the jsp file: /header.jsp 
Type mismatch: cannot convert from ArrayList<?> to ArrayList<String> 
7: <head> 
8: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
9: <% 
10:  ArrayList<String> whiteList = new ArrayList<>(
11:    Arrays.asList("login.jsp")); 
12: 
13:  String pg = request.getRequestURI().substring(request.getRequestURI().lastIndexOf("/")+1); 


An error occurred at line: 10 in the jsp file: /header.jsp 
Cannot instantiate the type ArrayList<?> 
7: <head> 
8: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
9: <% 
10:  ArrayList<String> whiteList = new ArrayList<>(
11:    Arrays.asList("login.jsp")); 
12: 
13:  String pg = request.getRequestURI().substring(request.getRequestURI().lastIndexOf("/")+1); 


An error occurred at line: 10 in the jsp file: /header.jsp 
Syntax error on token "<", ? expected after this token 
7: <head> 
8: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
9: <% 
10:  ArrayList<String> whiteList = new ArrayList<>(
11:    Arrays.asList("login.jsp")); 
12: 
13:  String pg = request.getRequestURI().substring(request.getRequestURI().lastIndexOf("/")+1); 


Stacktrace: 
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102) 
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331) 
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:457) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:378) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) 
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

我猜我失去了我的生产机器或在配置文件中的东西...

+1

ArrayList whiteList = new ArrayList ? – xcoder 2015-03-25 09:49:02

+0

以及它可能是,但为什么相同的编译在我的本地tomcat,而不是在Ubuntu的Tomcat? – lviggiani 2015-03-25 09:52:07

+0

是的...这是问题(对我来说很遗憾)...仍然在想为什么它会在我的本地机器上编译。 – lviggiani 2015-03-25 09:55:49

回答

1

的问题可以通过用

ArrayList<String> whiteList = new ArrayList<String>(Arrays.asList("login.jsp")); 
更换

ArrayList<String> whiteList = new ArrayList<>(Arrays.asList("login.jsp")); 

解决

关于为什么它在本地运行,但不在'Live'中,可能您正在使用不同版本的jar(例如, servlet的api.jar文件)?

相关问题