新部署tomcat,An error occurred at line: [1] index_jsp.java

时间:2023-03-09 01:20:48
新部署tomcat,An error occurred at line: [1] index_jsp.java

环境:

centos6.5 32位

oracle jdk 1.8

tomcat 7

问题:

yum install tomcat后,返回如下错误:

[root@centos]~# curl -v http://localhost:8080

* About to connect() to localhost port  (#)

*   Trying 127.0.0.1... connected

* Connected to localhost (127.0.0.1) port  (#)

> GET / HTTP/1.1

> User-Agent: curl/7.19. (i386-redhat-linux-gnu) libcurl/7.19. NSS/3.21 Basic ECC zlib/1.2. libidn/1.18 libssh2/1.4.

> Host: localhost:

> Accept: */*

> 

< HTTP/1.1 500 Internal Server Error

< Server: Apache-Coyote/1.1

< Content-Type: text/html;charset=utf-8

< Content-Language: en

< Content-Length: 2655

< Date: Thu, 15 Sep 2016 03:03:16 GMT

< Connection: close

< 

<html><head><title>Apache Tomcat/7.0.65 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - Unable to compile class for JSP: </h1><HR size="1" noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b> <u>Unable to compile class for JSP: </u></p><p><b>description</b> <u>The server encountered an internal error that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: [1] in the generated java file: [/usr/share/tomcat/work/Catalina/localhost/_/org/apache/jsp/index_jsp.java]

The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files

An error occurred at line: [1] in the generated java file: [/usr/share/tomcat/work/Catalina/localhost/_/org/apache/jsp/index_jsp.java]

The type java.io.ObjectInputStream 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:466)

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:662)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:364)

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:731)

org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

* Closing connection #0

#

网友介绍这是ecj.jar太老了。网友的版本事3.4.2,换4.2后ok。看下自己的ecj

[root@centos]/usr/share/java# ll|grep ecj

-rw-r--r--  root root   11月   ecj-3.4..jar

lrwxrwxrwx  root root        9月   : ecj.jar -> ecj-3.4..jar

lrwxrwxrwx  root root        9月   : eclipse-ecj-3.4..jar -> ecj-3.4..jar

lrwxrwxrwx  root root        9月   : eclipse-ecj.jar -> eclipse-ecj-3.4..jar

lrwxrwxrwx  root root        9月   : jdtcore.jar -> ecj-3.4..jar

果然很老。

那么打开ecj看下, 果然很多编译相关的类啊!

新部署tomcat,An error occurred at line: [1] index_jsp.java

http://wiki.jikexueyuan.com/project/tomcat/classloading.html

用ecj-4.4.2.jar 替换老版本ecj后,重启tomcat,关闭防火墙,访问网页

新部署tomcat,An error occurred at line: [1] index_jsp.java

done