java.lang.IllegalStateException: No output folder 解决方案

本文解决了一个在Mac环境下使用Tomcat运行JSP文件时遇到的No output folder异常问题。通过调整work目录的权限设置,最终实现了JSP文件的成功编译与运行。
org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: No output folder
at org.apache.jasper.JspCompilationContext.createOutputDir(JspCompilationContext.java:668)

at org.apache.jasper.JspCompilationContext.getOutputDir(JspCompilationContext.java:197)

...

今天在自己的web项目中新建了一个.jsp文件,选中.jsp右键run as server,发现报出这个错误,经过网上各大神的搜索,发现是mac电脑下tomcat/work/Catalina/localhost 没有读写改权限,可以进入该文件夹下,可以sudo chmod 755 tomcat/work/Catalina/localhost   然后输入root密码即可赋予该文件夹读写该权限,然后继续run as server该jsp文件,还是有问题,localhost目录下也没找到编译后的jsp对应的java和class文件,猜测自己的服务器没关闭,需要重新启动,于是stop restart  再试  还是不行。最后在国外网站有人说必须root启动tomcat,我就跑带外边特地sudo sh start.sh  然后输入jsp文件的URL地址,这样才能访问。不过我不喜欢这种root启动方式,毕竟我还是希望在eclispe里面启动,MAC修改work文件夹权限其实很简单,点中项目,右键显示简介,下面有“共享与权限”,修改为读与写,然后点击右下角的解锁标示,输入你的苹果密码就可以了。再到eclipse里面启动jsp文件,这下一切都正常了。

http://www.jb51.net/os/MAC/170734.html

PS:为何运行jsp需要work的读写权限?这是因为tomcat需要将jsp文件转化为.java文件和.class文件才能运行,而这个java文件和class就需要写在work目录下,你可以自己看看work目录里有将jsp解析出的java和class文件。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值