Tomcat 8 .war文件部署出错

在将.war文件上传到服务器的Tomcat webapps目录下后,出现访问错误,原因是Tomcat在尝试用jsp渲染内容时,需要work/Catalina/localhost/…目录下的自动生成类,但可能由于权限不足或目录缺失导致问题。解决方案包括手动创建该目录,并确保.war文件所有者与Tomcat进程所有者一致。

在本地生成.war文件之后上传到服务器的tomcat webapps目录下,tomcat会自动把.war文件解压并生成一个web应用。访问时却出现这样的错误。

org.apache.jasper.JasperException: java.lang.IllegalStateException: No output folder
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:538)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:364)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
root cause

java.lang.IllegalStateException: No output folder
    org.apache.jasper.JspCompilationContext.createOutputDir(JspCompilationContext.java:678)
    org.apache.jasper.JspCompilationContext.getOutputDir(JspCompilationContext.java:197)
    org.apache.jasper.JspCompilationContext.getClassFileName(JspCompilationContext.java:514)
    org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:453)
    org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:399)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)

问题原因是,当访问tomcat这个应用时,它需要用jsp来展示内容,而jsp渲染需要work/Catalina/localhost/…. 这个文件夹里面的自动生成的类,如果tomcat的权限不够或者没有这个目录就会报错。

解决方法是,如果没有这个目录就手动建立一个(一般情况下tomcat会自动生成这个目录),还有要注意.war文件的拥有者最好和tomcat程序的拥有者保持一致!

参考这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值