解决tomcat出现:java.lang.IllegalStateException:无输出目录问题
作者:十言1
tomcat出现:java.lang.IllegalStateException:无输出目录
问题描述
tomcat分为安装版和解压缩版,解压缩版如果解压到安装盘,在浏览器中访问http://localhost:8080,可能会出现500错误
错误提示如下:
类型 异常报告
消息 java.lang.IllegalStateException: 无输出目录
描述 服务器遇到一个意外的情况,阻止它完成请求。例外情况
org.apache.jasper.JasperException: java.lang.IllegalStateException: 无输出目录
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:605)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:436)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
根本原因。java.lang.IllegalStateException: 无输出目录
org.apache.jasper.JspCompilationContext.createOutputDir(JspCompilationContext.java:697)
org.apache.jasper.JspCompilationContext.getOutputDir(JspCompilationContext.java:204)
org.apache.jasper.JspCompilationContext.getClassFileName(JspCompilationContext.java:545)
org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:468)
org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:434)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:598)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
):注意 主要问题的全部 stack 信息可以在 server logs 里查看
原因分析
tomcat目录没有被读写的权限,导致文件不能被编译到指定的工作目录中。
解决方案
找到tomcat目录,右键“属性—>安全—>编辑”,找到Users,将“完全控制”选项“允许”打钩,应用。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。