目錄
- tomcat出現:java.lang.IllegalStateException:無輸出目錄
- 問題描述
- 原因分析
- 解決方案
- 總結
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,將“完全控制”選項“允許”打鉤,應用。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持。