当前位置: 首页 > 知识库问答 >
问题:

升级到Java 1.8会导致问题

史默
2023-03-14

我试图升级我目前的java项目,运行在1.6到1.8,但程序编译良好如何曾经当我去http://localhost:8080/MyProject/login.jsp-我得到错误。

我正在使用eclipse luna,我将java\u HOME更改为1.8,将eclipse项目facets更改为1.8,并更新了javax。servlet api=3.1.0。

堆栈跟踪

springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.tiles.impl.CannotRenderException: ServletException including path '/WEB-INF/jsp/template/noLayout.jsp'.
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:943) ~[spring-webmvc-4.0.0.RELEASE.jar:4.0.0.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:822) ~[spring-webmvc-4.0.0.RELEASE.jar:4.0.0.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:735) ~[servlet-api-3.0.jar:na]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:807) ~[spri

Caused by: org.apache.tiles.impl.CannotRenderException: ServletException including path '/WEB-INF/jsp/template/noLayout.jsp'.
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:692) ~[tiles-core-2.2.2.jar:2.2.2]
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:644) ~[tiles-core-2.2.2.jar:2.2.2]
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:627) ~[tiles-core-2.2.2.jar:2.2.2]
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:321) ~[tiles-core-2.2.2.jar:2.2.2]
at org.springframework.web.servlet.view.tiles2.TilesView.renderMergedOutputModel(TilesView.java:88) ~[spring-webmvc-4.0.0.RELEASE.jar:4.0.0.RELEASE]
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:266) ~[spring-webmvc-4.0.0.RELEASE.jar:4.0.0.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1225) ~[spring-webmvc-4.0.0.RELEASE.jar:4.0.0.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1012) ~[spring-webmvc-4.0.0.RELEASE.jar:4.0.0.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) ~[spring-webmvc-4.0.0.RELEASE.jar:4.0.0.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876) ~[spring-webmvc-4.0.0.RELEASE.jar:4.0.0.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:931) ~[spring-webmvc-4.0.0.RELEASE.jar:4.0.0.RELEASE]
... 65 common frames omitted
Caused by: org.apache.tiles.util.TilesIOException: ServletException including path '/WEB-INF/jsp/template/noLayout.jsp'.
at org.apache.tiles.servlet.context.ServletUtil.wrapServletException(ServletUtil.java:243) ~[tiles-servlet-2.2.2.jar:2.2.2]
at org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:243) ~[tiles-servlet-2.2.2.jar:2.2.2]
at org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:222) ~[tiles-servlet-2.2.2.jar:2.2.2]
at org.apache.tiles.renderer.impl.TemplateAttributeRenderer.write(TemplateAttributeRenderer.java:44) ~[tiles-core-2.2.2.jar:2.2.2]
at org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106) ~[tiles-core-2.2.2.jar:2.2.2]
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:670) ~[tiles-core-2.2.2.jar:2.2.2]
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:690) ~[tiles-core-2.2.2.jar:2.2.2]
... 75 common frames omitted
Caused by: org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP

PWC6199: Generated servlet error:
string:///noLayout_jsp.java:7: cannot access java.lang.Object
bad class file: java\lang\Object.class(java\lang:Object.class)
class file has wrong version 52.0, should be 50.0
Please remove or make sure it appears in the correct subdirectory of the classpath*.

无布局。jsp

  <% response.setHeader("Cache-Control", "no-store, private, must-revalidate, max-stale=0, post-check=0, pre-check=0"); //Forces caches to obtain a new copy of the page from the origin server
response.setHeader("Pragma", "no-cache"); //HTTP 1.0 backward compatibility 
response.setDateHeader("Expires", 0); //Causes the proxy cache to see the page as "stale"
%><%@ page isELIgnored="false"%><!doctype html>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<html>
 <head>  
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">  
<link href="${pageContext.request.contextPath}/css/base.css" rel="stylesheet" type="text/css">

我用常春藤做依赖管理

我从

瓷砖版本2.2、Spring4.0和码头

共有2个答案

黄昊英
2023-03-14
string:///noLayout_jsp.java:7: cannot access java.lang.Object
bad class file: java\lang\Object.class(java\lang:Object.class)
class file has wrong version 52.0, should be 50.0

用于处理JSP的编译器似乎仍然是Java 6,但却被Java 8的系统JAR所感染。您是从Eclipse启动应用程序,还是将其作为独立应用程序运行?如果是前者,请确保还设置了JRE系统库(项目的属性-

林国安
2023-03-14

一种可能的解决方案是为组织定义编译器资源VM和编译器目标VM。阿帕奇。贾斯珀。servlet。JspServlet(tomcat主页/conf/web.xml)

这样地:

 <servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>                                   
            <param-name>compilerSourceVM</param-name>
            <param-value>1.8</param-value>
        </init-param>
        <init-param>
            <param-name>compilerTargetVM</param-name>
            <param-value>1.8</param-value>
        </init-param>                                   
    </servlet>

此配置定义了jasper的编译器版本。

有关更多信息,请参阅tomcat实现的配置属性,例如tomcat 7参考文档

您还可以阅读这篇文章,其中包含有关如何定义jasper编译器版本Jasper编译器版本配置的相关信息

 类似资料:
  • 我已经将我的项目从Angular 4升级到Angular 7,并且我得到以下错误: node_modules/@ng-bootstrap/ng-bootstrap/typeahead/typeahead.d.ts(3,10)中的错误:错误TS2305:模块“d://usman/dev_area/code/physician-portal/node_modules/rxjs/observable”没

  • 我最近让 STS 将自己从 3.1 更新到 3.5,现在我收到有关 MatchLocator 类的错误。我不确定匹配定位器是什么,但它似乎是 Eclipse 的核心服务。 当我打开STS时,我得到 “初始化Java工具”期间出现内部错误。org/eclipse/JDT/internal/core/search/matching/match locator 打开后,我会为每个applicationC

  • 我正在将Struts2安装升级到2.3.15。添加

  • 我正在使用QT Creator在Ubuntu上制作一个C++程序。我编写的程序编译得很好,直到我决定开始使用C++11而不是C++98(这是QT Creator中的默认值)。我使用的是自己的cmake文件,而不是qmake,为此,我在中包含了以下一行: 在转移到C++11之后,我在行得到一个错误。这是因为,据我所见,变量在任何地方都没有定义,尽管定义了变量。 因此,我有两个问题: 1)为什么变量没

  • 我已经从Rails 3.2.13升级到Rails 4.0.0。我修复了所有弃用警告(除了secret_base_key),升级了database_cleaner,rspec,rspec-rails,水豚,selenium-webcher和poltergeist到最新版本。 现在,当我通过rake或rspec运行我的规范时,rspec的输出最终会挂起,总是挂在特性测试(javascript测试)上。

  • 我有一个基于Java 1.6和Weblogic 10.3.6的运行应用程序。现在我正在迁移到Java 1.8和Weblogic 12cR2(12.2.1.3)。我有一个EAR文件,它构建在ANT上,部署在Weblogic中。 我已经在我的系统中安装了JDK 1.8和Weblogic 12cR2。我已经编译了我的代码库,并成功地在ANT上构建了它。生成的EAR文件没有任何错误。现在,我正试图在我最新