精华内容
下载资源
问答
  • tomcat 不能编译jsp错误最新解决方案

    千次阅读 2009-12-10 10:40:00
    Tomcat不能编译JSP文件的问题解决方案 在Tomcat出现类似如下异常:   一大堆jar错误, 然后是 The system is out of resources. Consult the following stack trace for details. java.lang....
    <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
    <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

     

    Tomcat不能编译JSP文件的问题解决方案
    在Tomcat出现类似如下异常:

     

    一大堆jar错误,

    然后是
    The system is out of resources.
    Consult the following stack trace for details.
    java.lang.OutOfMemoryError

    内存溢出错误,tomcat的缓存过小
    这是由于Tomcat使用的是Ant进行编译JSP文件的,而Ant会因为JVM的最大使用内存设置过小而抛出这个异常,因此,需要重新设置JVM的最小和最大使用内存,可以通过两种方式进行设置:
    1:设置环境变量,例如在Linux下,在.bashrc中增加export JAVA_OPTS=" -Xms128m -Xmx256m ",重新登陆后重起Tomcat即可。
    2:修改Tomcat的启动文件catalina.sh,将"-Xms128m -Xmx256m"添加到启动参数JAVA_OPTS,重起Tomcata即可。
    ----------------------------------
    因为最开始看到的是jsp的报错,以为是jdk设置的问题,
    网上查了类似问题也都是说jdk的设置有问题引起的,反复试验,不管是jdk1.4.2的还是jdk1.5的,
    还是手工把jar包拷贝到tomcat的common/lib路径,都没法解决问题; 3月底的备份代码取出来也是报这个错;    
    最后怀疑是不是虚拟内存太小导致的?打开tomcat的bin/catalina.bat ,往86行添加一行设置:
    set   JAVA_OPTS=-Xms256m   -Xmx300m 
    注:
    JAVA_OPTS='-Xms[初始化内存大小] -Xmx[可以使用的最大内存]'
    参数 描述 -Xms JVM初始化堆的大小
                                -Xmx JVM堆的最大值,一般说来,你应该使用物理内存的80% 作为堆大小。
    重启服务,不再报错

    配置tomcat的缓存还可以在eclipse中配置,根据需要的大小,自己配置,配置完成后我感觉tomcat运行更加顺畅了.呵呵...

    3.

    image

    展开全文
  • tomcat-jsp编译原理

    千次阅读 2018-05-17 20:47:30
    Jsp编译原理Tomcat编译jsp 在说jsp的编译原理之前,先简单说下tomcat编译后的jsp。在启动tomcat的时候,tomcat是不会立刻将jsp编译为java和class文件的。只有第一次访问jsp页面的时候tomcat才会编译。Tomca编译后的...

    Jsp编译原理

    Tomcat编译jsp

             在说jsp的编译原理之前,先简单说下tomcat编译后的jsp。在启动tomcat的时候,tomcat是不会立刻将jsp编译为java和class文件的。只有第一次访问jsp页面的时候tomcat才会编译。Tomca编译后的jsp对应的java文件和class文件存放在tomcat/work/Engine名称/Host名称/Context名称目录下(tomcat/work/Catalina/localhost/项目名称)。


    Jsp页面

             这里使用2个jsp页面,一个包含另一个,而且尽量使用了比较多的特性来展示。

    Header.jsp

    <html>
    <head>
    </head>
    <body>
        <h2>Hello</h2>
    </body>
    </html>
    

    Index.jsp

    <%@page language="java" contentType="text/html; ISO-8859-1" pageEncoding="ISO-8859-1" %>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <%@page import="java.lang.String" %>
    <%@page import="java.util.Date" %>
    <html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" >
    </head>
    <body>
        <jsp:include page="header.jsp"></jsp:include>
        <%@include file="header.jsp"%>
        <fmt:formatDate value="<%= new Date()%>" type="date" />
        <% for (int i = 0; i < 10; i++) { %>
            <%= new String().valueOf(i) %>
        <% } %>
    </body>
    </html>
    

    编译后的java 文件(index.jsp)

    /*
     * Generated by the Jasper component of Apache Tomcat
     * Version: Apache Tomcat/7.0.57
     * Generated at: 2018-05-16 16:14:26 UTC
     * Note: The last modified time of this file was set to
     *       the last modified time of the source file after
     *       generation to assist with modification tracking.
     */
    package org.apache.jsp;
    
    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.servlet.jsp.*;
    import java.lang.String;
    import java.util.Date;
    
    public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
        implements org.apache.jasper.runtime.JspSourceDependent {
    
      private static final javax.servlet.jsp.JspFactory _jspxFactory =
              javax.servlet.jsp.JspFactory.getDefaultFactory();
    
      private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;
    
      static {
        _jspx_dependants = new java.util.HashMap<java.lang.String,java.lang.Long>(1);
        _jspx_dependants.put("/header.jsp", Long.valueOf(1526487042803L));
      }
    
      private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005ffmt_005fformatDate_0026_005fvalue_005ftype_005fnobody;
    
      private javax.el.ExpressionFactory _el_expressionfactory;
      private org.apache.tomcat.InstanceManager _jsp_instancemanager;
    
      public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
        return _jspx_dependants;
      }
    
      public void _jspInit() {
        _005fjspx_005ftagPool_005ffmt_005fformatDate_0026_005fvalue_005ftype_005fnobody = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
        _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
        _jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
      }
    
      public void _jspDestroy() {
        _005fjspx_005ftagPool_005ffmt_005fformatDate_0026_005fvalue_005ftype_005fnobody.release();
      }
    
      public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
            throws java.io.IOException, javax.servlet.ServletException {
    
        final javax.servlet.jsp.PageContext pageContext;
        javax.servlet.http.HttpSession session = null;
        final javax.servlet.ServletContext application;
        final javax.servlet.ServletConfig config;
        javax.servlet.jsp.JspWriter out = null;
        final java.lang.Object page = this;
        javax.servlet.jsp.JspWriter _jspx_out = null;
        javax.servlet.jsp.PageContext _jspx_page_context = null;
    
    
        try {
          response.setContentType("text/html; ISO-8859-1;charset=ISO-8859-1");
          pageContext = _jspxFactory.getPageContext(this, request, response,
          			null, true, 8192, true);
          _jspx_page_context = pageContext;
          application = pageContext.getServletContext();
          config = pageContext.getServletConfig();
          session = pageContext.getSession();
          out = pageContext.getOut();
          _jspx_out = out;
    
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("\n");
          out.write("<html>\n");
          out.write("<head>\n");
          out.write("    <meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\" >\n");
          out.write("</head>\n");
          out.write("<body>\n");
          out.write("    ");
          org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "header.jsp", out, false);
          out.write("\n");
          out.write("    ");
          out.write("<html>\r\n");
          out.write("<head>\r\n");
          out.write("</head>\r\n");
          out.write("<body>\r\n");
          out.write("    <h2>Hello</h2>\r\n");
          out.write("</body>\r\n");
          out.write("</html>");
          out.write("\n");
          out.write("    ");
          //  fmt:formatDate
          org.apache.taglibs.standard.tag.rt.fmt.FormatDateTag _jspx_th_fmt_005fformatDate_005f0 = (org.apache.taglibs.standard.tag.rt.fmt.FormatDateTag) _005fjspx_005ftagPool_005ffmt_005fformatDate_0026_005fvalue_005ftype_005fnobody.get(org.apache.taglibs.standard.tag.rt.fmt.FormatDateTag.class);
          _jspx_th_fmt_005fformatDate_005f0.setPageContext(_jspx_page_context);
          _jspx_th_fmt_005fformatDate_005f0.setParent(null);
          // /index.jsp(13,4) name = value type = null reqTime = true required = true fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
          _jspx_th_fmt_005fformatDate_005f0.setValue( new Date());
          // /index.jsp(13,4) name = type type = null reqTime = true required = false fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
          _jspx_th_fmt_005fformatDate_005f0.setType("date");
          int _jspx_eval_fmt_005fformatDate_005f0 = _jspx_th_fmt_005fformatDate_005f0.doStartTag();
          if (_jspx_th_fmt_005fformatDate_005f0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
            _005fjspx_005ftagPool_005ffmt_005fformatDate_0026_005fvalue_005ftype_005fnobody.reuse(_jspx_th_fmt_005fformatDate_005f0);
            return;
          }
          _005fjspx_005ftagPool_005ffmt_005fformatDate_0026_005fvalue_005ftype_005fnobody.reuse(_jspx_th_fmt_005fformatDate_005f0);
          out.write("\n");
          out.write("    ");
     for (int i = 0; i < 10; i++) { 
          out.write("\n");
          out.write("        ");
          out.print( new String().valueOf(i) );
          out.write("\n");
          out.write("    ");
     } 
          out.write("\n");
          out.write("</body>\n");
          out.write("</html>\n");
        } catch (java.lang.Throwable t) {
          if (!(t instanceof javax.servlet.jsp.SkipPageException)){
            out = _jspx_out;
            if (out != null && out.getBufferSize() != 0)
              try {
                if (response.isCommitted()) {
                  out.flush();
                } else {
                  out.clearBuffer();
                }
              } catch (java.io.IOException e) {}
            if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
            else throw new ServletException(t);
          }
        } finally {
          _jspxFactory.releasePageContext(_jspx_page_context);
        }
      }
    }
    

    分析总结编译过程

    1)     index.jsp文件编译为Java文件后的类名为index_jsp,并且继承了org.apache.jasper.runtime.HttpJspBase类。

    2)     通过_jspx_dependants保存了当前JSP页面依赖的资源,包括引入的外部jsp页面,导入的标签和jar包等。

    3)     通过属性_jspx_import_packages存放导入的Java包(这里没有导入)。

    4)     通过属性_jspx_imports_class存放导入的类。

    5)     请求处理由_jspService方法完成。

    6)     _jspService方法中的:pageContext/session/application/config/out/page等参数可以在页面中使用。

    7)     指定文档类型的指令page被response.setContentType调用。

    8)     对于html内容由out.write输出。

    9)     通过<jsp:include/>引入的jsp页面,org.apache.jasper.runtime.JspRuntimeLibrary.include将其包含。

    10)  通过<%@include%>引入的外部jsp页面,通过out.write输出其内容。

    11)  对于<%%>中的java代码,直接转换为Servlet中。要输出的内容通过out.write输出。




    展开全文
  • Tomcat不能编译JSP文件的问题解决方案 在Tomcat出现类似如下异常: The system is out of resources. Consult the following stack trace for details. java.lang.OutOfMemoryError 这是由于Tomcat使用...
    Tomcat不能编译JSP文件的问题解决方案 
    

    在Tomcat出现类似如下异常:

    The system is out of resources.
    Consult the following stack trace for details.
    java.lang.OutOfMemoryError

    这是由于Tomcat使用的是Ant进行编译JSP文件的,而Ant会因为JVM的最大使用内存设置过小而抛出这个异常,因此,需要重新设置JVM的最小和最大使用内存,可以通过两种方式进行设置:
    1:设置环境变量,例如在Linux下,在.bashrc中增加export JAVA_OPTS=" -Xms128m -Xmx256m ",重新登陆后重起Tomcat即可。
    2:修改Tomcat的启动文件catalina.sh,将"-Xms128m -Xmx256m"添加到启动参数JAVA_OPTS,重起Tomcata即可。


    ----------------------------------

    因为最开始看到的是jsp的报错,以为是jdk设置的问题,
    网上查了类似问题也都是说jdk的设置有问题引起的,反复试验,不管是jdk1.4.2的还是jdk1.5的,
    还是手工把jar包拷贝到tomcat的common/lib路径,都没法解决问题; 3月底的备份代码取出来也是报这个错;
    最后怀疑是不是虚拟内存太小导致的?打开tomcat的bin\catalina.bat ,往86行添加一行设置:
    set JAVA_OPTS=-Xms256m -Xmx300m
    注:
    JAVA_OPTS='-Xms[初始化内存大小] -Xmx[可以使用的最大内存]'
    参数 描述 -Xms JVM初始化堆的大小
    -Xmx JVM堆的最大值,一般说来,你应该使用物理内存的80% 作为堆大小。



    重启服务,不再报错
    展开全文
  • 今天碰到一个非常奇怪的问题,机器环境是JDK8、Tomcat8,把jQuery ...在该项目下新建一个简单的jsp页面,发现也不能运行,出现错误提示: org.apache.jasper.JasperException: Unable to compile class for ...

    今天碰到一个非常奇怪的问题,机器环境是JDK8、Tomcat8,把jQuery MiniUI ( for Java Eclipse)下载后导入到Eclipse中,首页可以显示,但运行操作数据库的页面出错。在该项目下新建一个简单的jsp页面,发现也不能运行,出现错误提示:

    org.apache.jasper.JasperException: Unable to compile class for JSP,即不能编译jsp文件。

    也在网上找了解决方法,多次尝试,终于解决了。

    要把jQuery MiniUI ( for Java Eclipse)项目的WebContent\WEB-INF\lib目录下的servlet-api.jar删除,重启Tomcat8即可。

    原因应该是jQuery MiniUI ( for Java Eclipse)开发时所用的是低版本的Tomcat,该项目lib下的servlet-api.jar文件与新版本的不能兼容。

     

    展开全文
  • tomcat不能自动编译jsp文件

    万次阅读 2011-09-22 21:32:09
    在网上看到这样一段关于tomcat不能自动编译的问题说明 【Tomcat的热发布,应该都是按照文件的修改时间来判定的。如果Jsp文件修改时间更新了,也就是jsp的修改时间晚于work目录下java的修改时间,那么Tomcat会将这个...
  • 由于工作需要,要把项目发布到服务器上,本地测试全部...重点来了,本地测试好好的,发布到服务器上时,因为Tomcat无法编译部分系统用到的JSP页面,这下好了,一直显示无法加载类或是class文件存在。错误截图如下:
  • Tomcatjsp编译参数

    2019-04-08 01:24:19
    NULL 博文链接:https://michaelee.iteye.com/blog/1603811
  • Tomcat编译jsp的条件

    千次阅读 2018-05-19 11:44:06
    当我们请求jsp页面时,tomcat将请求交由JspServlet来处理,对jsp页面的处理主要是通过serviceJspFile函数来实现的。
  • SpringBoot整合JSP视图,里面提供了两种方式:内置Tomcat启动和外部Tomcat部署的Demo案例
  • 1.我把maven生成的war包放到tomcat下访问页面出现org.apache.jasper.JasperException: Unable to compile class for JSP: 2.是因为pom.xml下载的javax.servlet包与tomcat bin下的起冲突了,所以我们要把webapps下...
  • C:\Users\用户\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat\Unnamed_springmvc_001\work\Catalina\localhost\0301\org\apache\jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %&...
  • tomcat无法编译Jsp

    2013-05-23 14:33:00
    WEB_002dINF/.../xxx_jsp.java 经过排查,发现tomcat/work/Catalina/localhost/xxxx的用户和组为root 原因:某一次曾经使用root重启过tomcat,并通过tomcat的manager部署了项目,结果webapps目录和work目录下该...
  • tomcat怎么启动时一次编译全部JSP,默认是请求时才编译
  • 这个事情比较奇怪,但凡有初级web 开发经验的人都了解,在web容器是tomcat的开发环境中修改jsp页面后无需重启tomcat,仅仅刷新就可以在浏览器中看到效果,这已经是一个人尽皆知的事情了,那这个幺蛾子是怎么飞出来的...
  • 上传的JSP无法编译。要么就是找到类的引用,要不就是找到include文件的位置。但奇怪的是主页能够编译,就是index.jsp。但在二级目录下的jsp文件都无法编辑。当时我找到许多网上的文章,一般说是servlet-api.jar...
  • tomcat编译jsp产生的java和class文件存储的目录为: D:\apache-tomcat-7.0.70\work\Catalina\localhost 2.( 找到的情况) 可能是你的tomcat配置在Eclipse的server中了。如果是的话,在Eclipse中...
  • TomcatJSP编译成servlet后的文件存放在 apache-tomcat-8.5.16/work/Catalina目录下。 e g: \webapps\login\welcome.jsp 文件编译后  => \work\Catalina\localhost\login\org\apache\jsp\welcome_jsp.class \...
  • Tomcat中找JSP编译后的java文件

    千次阅读 2017-07-25 11:25:16
    Tomcat中找JSP编译后的java文件 Background: 开发环境:eclipse + tomcat 想去看源码中jsp是如何用servlet实现的时候,发现在D:\proSoft\Tomcat\apache-tomcat\work\Catalina\localhost\projectName 下找到...
  • 1.Jsp简介  jsp(java server page),其根本是一个简化的Servlet技术,是一种动态网页技术标准。  它是在传统的网页HTML页面中插入java代码段,从而形成jsp文件,后缀为.jsp。  jsp同Servlet一样,是在服务端...
  • tomcat编译jsp文件的源码路径问题

    千次阅读 2017-09-17 13:12:45
    tomcat编译jsp文件的源码路径问题
  • ; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> ; charset=UTF-8"> ...这是浏览器显示的内容
  • 关于Tomcat编译JSP

    2018-01-17 23:01:10
    最近在项目中,需要修改一个jsp的的内容,主要是设计里面的java代码,在对代码就行修改之后(为了防止出错,特意把原来的jsp文件备份了一个,... 于是上网查资料,发现Tomcat编译jsp文件的设计:在对jsp进行访问的时
  • Tomcat 7 下对 JSP 进行预编译

    千次阅读 2017-06-07 10:25:18
    编译jsp,直接看maven配置,IDE为idea,注意tomcat的版本,有些版本中有些类是存在的,那么就把编译的tomcat版本降低 <groupId>org.codehaus.mojo.jspc <artifactId>jspc-maven-plugin</artifactId>
  • 1.新引入的一个项目,解决好各种编译问题后,发布到Tomcat 启动,报错如下: SEVERE: 在路径为的上下文中,Servlet[jsp]的Servlet.service()引发了具有根本原因的异常无法为JSP编译类 java.lang....
  • Jasper概述 Jasper模块是Tomcat的JSP核心引擎,JSP本质上是一个Servlet。Tomcat使用Jasper对JSP...另外,在运行的时候,Jasper还会检测JSP文件是否修改,如果修改,则会重新编译JSP文件。 JSP编译方式 运行时编译 To...
  • Tomcat无法编译jsp问题

    千次阅读 2007-11-23 12:58:00
    今天同事遇到一个很奇怪的问题, 在Eclipse中编辑过的jsp,发布在tomcat中不再编译,仍然显示未修改前的内容.最后我试着让他重新部署,问题依然存在. 我想一定是jsp没有编译的原因,最后让他把tomcat目录中下work目录下的...
  • 相信大家在maven中创建一个web项目,在pom.xml文件中引入了servlet-api和jsp-api的依赖,并且也设置了provided来防止jar冲突,但是还是会出现不能编译jsp类的错误。 org.apache.jasper.JasperException: Unable to ...
  • 今天遇到一个问题,首先是在tomcat中间件上跑的web项目,一个jsp文件,因为代码行数实在是太多了,更新了几个版本之后编译报错了,页面打开都是报500的错误,500的报错,知道http协议返回码的都知道,这是服务端的...
  • JSP文件经Tomcat编译后的文件位置

    千次阅读 2016-12-07 08:57:56
    关于编译后的位置,可以手动在配置文件中设置,当然设置就会是默认配置 1.打开eclipse中Window&gt;&gt;Preferences,选中Tomcat,有一个Context declaration mode,这个配置是选择那个Tomcat配置文件生效...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,526
精华内容 30,210
关键字:

tomcat不能编译jsp