在linux下tomcat不能解析使用了jstl的jsp页面


今天要吧win下开发的一个项目移到linux下(fedora22) 在windows上运行是正常的
但是移动到linux下后可以正常运行, 但是访问页面会报错


 HTTP Status 500 - java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.jsp.login_jsp

再刷新就变成


 HTTP Status 500 - /WEB-INF/jsp/login.jsp (line: 43, column: 22) attribute value for [test] is not properly terminated

一直刷新就会轮流出现这两个错误
但是!!!!!!!
如果使用maven的tomcat插件启动项目的话可以正常运行!
如果把jsp页面的所有使用jstl的地方都注释掉的话也能正常运行

我再maven里引用是:


 <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

有没有谁遇到过这样的情况的? 求帮忙 弄了一天实在解决不了了。。。 重装tomcat什么的试了好几次了。。。
使用jetty的话也是这样的情况 用maven的jetty插件能正常 注释掉jstl使用的部分也正常 唯独使用jetty部署会出问题...

java jstl JSP java-ee

我的良大人 9 years, 1 month ago

是你安装的jdk的问题,

琉璃宮かなで answered 9 years, 1 month ago

找到问题所在了。。 是我标签内的el表达式有错(然而神奇的是它之前居然运行的很正常, 用maven部署从不出错。。)


 <c:if test = "${null != error && !\"\".equals(error)}">
              ......
        </c:if>

一开始我是这样写的, 后来改成这样就正常的


 <c:if test = "${null != error && !empty error}">
            .........
        </c:if>

如果有哪位大神知道为什么在其他情况下能正常工作请告知一下, 谢谢!

Ryo·X answered 9 years, 1 month ago

Your Answer