zoukankan      html  css  js  c++  java
  • java.lang.IllegalStateException: No output folder

    将正在正常运行的tomcat打包(使用tar -zcvf命令打的包),然后放到其他服务器上使用非root用户解压(使用tar -zxvf命令)配置好之后,启动tomcat后报错如下



    HTTP Status 500 - java.lang.IllegalStateException: No output folder
    typeException report
    messagejava.lang.IllegalStateException: No output folder
    descriptionThe server encountered an internal error that prevented 
    it from fulfilling this request.
    exceptionorg.apache.jasper.JasperException: java.lang.IllegalStateException: No output folder
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:585)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:391)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    root causejava.lang.IllegalStateException: No output folder
    org.apache.jasper.JspCompilationContext.createOutputDir(JspCompilationContext.java:738)
    org.apache.jasper.JspCompilationContext.getOutputDir(JspCompilationContext.java:196)
    org.apache.jasper.JspCompilationContext.getClassFileName(JspCompilationContext.java:581)
    org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:461)
    org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:425)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:639)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    noteThe full stack trace of the root cause is available in the 
    Apache Tomcat/7.0.39 logs.


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

    org.apache.jasper.JasperException: java.lang.IllegalStateException: No output folder:
    关于这个原因主要是权限的问题,在tomcat/work/Catalina/localhost/,主要是这个目录没有被读写的权限,导致文件不能被编译到该指定的工作目录中,此时我们就要针对与这个目录做一些权限的修改权限至少要达到755或者以上,同时注意此处修改权限必须用root身份进行操作,否则不能进行修改,修改完后编译好的jsp文件就在localhost的目录当中了。发现了问题在于work/Catalina/localhost/中无法生成对应文件,把tomcat整个目录、work整个目录都修改了权限仍然不行。最后到具体的目录tomcat/work/Catalina/localhost/进行修改权限OK。


     我遇到的这个报错,是因为使用root启动过一次服务,后来用其他用户进行服务的启动,而在启动之前没有删除tomcat/work/目录下的内容,该目录下还是存在属主为root用户的Catalina目录,在使用其他用户执行启动时,由于该Catalina已存在,就不再重新创建,而是增量修改该目录,但是由于其他用户没有权限修改属主为root的目录和文件,因此报错。建议在每次停tomcat成功后,删除tomcat/work/*;如果不想每次都删除,一定要保证每次启动tomcat使用的用户要严格正确。

  • 相关阅读:
    颠覆C#王权的“魔比斯环” — 实现AOP框架的终极利器
    使用.Net的CodeDOM技术实现语言无关的Code Wizard
    拆半查找的递归和非递归算法
    使用wxWidgets for C++从资源文件中静态装载图像
    全排列算法原理和实现
    得到第K个大的数算法研究
    用C#2.0实现网络蜘蛛(WebSpider)
    Php实现Js的escape方法
    google map 获取 地理定位
    将sqlserver表中的数据导出sql语句(转)
  • 原文地址:https://www.cnblogs.com/huangmr0811/p/5571039.html
Copyright © 2011-2022 走看看