2017-09-07 3 views
0

Ich versuche mein aktuelles Java-Projekt zu aktualisieren, das auf 1.6 bis 1.8 läuft, aber das Programm kompiliert fein wie immer, wenn ich gehe http://localhost:8080/MyProject/login.jsp- Ich bekomme Fehler.Upgrade auf Java 1.8 Ursachen Probleme

Ich benutze Eclipse Luna und ich änderte die java_HOME zu 1.8 und Eclipse Projekt Facetten auf 1.8 und aktualisierte die javax.servlet-api = 3.1.0.

Der Stack-Trace

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*. 

noLayout.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"> 

I

ich vongeändert Ivy für Abhängigkeitsmanagement bin mit

Tiles Version 2.2, Feder 4.0 und Steg

+0

Ich habe versucht, die Fliesen und Frühjahr auf die neueste Version zu aktualisieren, aber immer noch Fehler. –

+0

Sieht aus wie etwas (möglicherweise Jasper?) Mit einer älteren Java-Version läuft. [This] (https://stackoverflow.com/questions/28180915/class-file-has-wrong-version-52-0-should-be-50-0) könnte verwandt sein. – Turing85

+0

Danke @ Turing85, ich aktualisierte Jaspis auf die neueste Version zu immer noch gleichen Fehler. Es funktioniert gut mit Java 6 –

Antwort

0

Eine mögliche Lösung ist die compilerSourceVM und compilerTargetVM für org.apache.jasper.servlet.JspServlet (tomcat-home/conf/web.xml)

wie folgt zu definieren:

<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> 

Diese Konfiguration definiert die Compiler-Version von Jaspis.

Weitere Informationen finden Sie die Konfigurationseigenschaften Ihres Katers Implementierung szB Tomcat 7 reference doc

auch Sie diesen Beitrag mit verwandten Informationen lesen, wie die Jaspis-Compiler Version der Jasper Compiler Version config

0
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 

definieren Der Compiler, der zur Verarbeitung der JSP verwendet wird, scheint immer noch Java 6 zu sein, wurde aber mit den System-Jars von Java 8 gefüttert. Starten Sie Ihre Anwendung von Eclipse aus, oder wenn Sie sie als eigenständige Anwendung ausführen? Stellen Sie sicher, dass Sie die JRE-Systembibliothek (Eigenschaften des Projekts -> Java-Buildpfad -> JRE-Systembibliothek) auf Java 8 festlegen. Wenn Sie alles auf Java 8 in den Java-Compilereinstellungen festlegen, reicht dies nicht aus. Wenn es der Buchstabe ist, überprüfen Sie Ihre JSP-Konfiguration, wenn noch etwas von dem alten, das auf die Java 6-Binärdateien verweist, übrig ist.

Verwandte Themen