1

I have a project containing a single index.jsp page in pages folder and some javascript libraries and code. I bundled them into a WAR and deployed it in a CentOS system. But when I try to access it, I am getting error. The error alternates between

HTTP Status 404 - /Project/pages/index.jsp
type: Status report
message: /Project/pages/index.jsp
description: The requested resource is not available.

and

HTTP Status 500 - java.lang.ClassNotFoundException: org.apache.jsp.pages.index_jsp
type: Exception report
message: java.lang.ClassNotFoundException: org.apache.jsp.pages.index_jsp
description: The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.pages.index_jsp
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:177)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:376)
    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)
root cause

java.lang.ClassNotFoundException: org.apache.jsp.pages.index_jsp
    java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:376)
    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)

I have no problem in deploying it in my local machine.

EDIT: Configuration

Using CATALINA_BASE:   /usr/share/tomcat
Using CATALINA_HOME:   /usr/share/tomcat
Using CATALINA_TMPDIR: /usr/share/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:    /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar

This is the configuration of tomcat in CentOS. My localmachine has the same configuration, except Using JRE_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

mahacoder
  • 895
  • 3
  • 14
  • 29

1 Answers1

0

Please recheck following steps:

  1. Does tomcat use JRE_HOME set to JRE folder, not JDK location?
  2. Does your tomcat classpath contains jsp-api.jar?

If above steps correct, give more information, what kind of framework your project uses and etc.

Dhaval Simaria
  • 1,886
  • 3
  • 28
  • 36
Daniyar
  • 815
  • 1
  • 9
  • 22
  • I have added configurations to the question. Is it becaue the `JRE_HOME` points to something different? – mahacoder Dec 21 '15 at 06:32
  • @ak31 yes, you need specify jre_home, you can do it in setenv.sh file example `JRE_HOME=/usr/java/jdk1.7.0_03/jre` – Daniyar Dec 21 '15 at 06:39
  • You may refer below link to better understand the configuration of JRE_HOME for tomcat: http://stackoverflow.com/questions/11120279/difference-between-java-home-and-jre-home – Dhaval Simaria Dec 21 '15 at 06:47