【发布时间】:2015-02-21 09:45:14
【问题描述】:
UPDATE tomcat8 似乎在这种情况下工作,因为我可以根据需要打开 /manager/ 页面。虽然这并不能解决这里的原始问题状态,但我建议您在这种情况下使用来自 debian backports 的 tomcat8!
Raspbian 提供当前的 Java 8 版本
root@raspberrypi:/etc/apt# java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode)
安装tomcat 7后,我恢复到debian backports提供的tomcat7版本
root@raspberrypi:/etc/apt# dpkg -l |grep tomcat
ii libtomcat7-java 7.0.56-1~bpo70+2 all Servlet and JSP engine -- core libraries
ii tomcat7 7.0.56-1~bpo70+2 all Servlet and JSP engine
ii tomcat7-admin 7.0.56-1~bpo70+2 all Servlet and JSP engine -- admin web applications
ii tomcat7-common 7.0.56-1~bpo70+2 all Servlet and JSP engine -- common files
根据tomcat7 not compiling jsp examples 应该可以工作。但是,情况并非如此,因为管理器页面给我留下了以下错误:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: [1] in the generated java file: [/var/lib/tomcat7/work/Catalina/localhost/manager/org/apache/jsp/index_jsp.java]
The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:366)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:477)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:379)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:657)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:213)
org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
有人知道这里的实际问题可能是什么吗?
【问题讨论】:
-
您运行的是 Java SDK 还是 Java JRE?
-
oracle-java8-jdk 默认安装在 raspbian 中。正如刚刚更新的那样,tomcat8 运行。
-
@col.panic 你是如何在 raspbian 上的 raspberry 上获得 tomcat8 的?你必须自己编译吗?
-
@flindeberg 我添加了一个答案,解释了我是如何让它工作的,虽然不是“最好的”解决方案,恕我直言。请,col.panic,添加一个答案来解释你是如何做到的。