我是靠谱客的博主 仁爱小懒猪,最近开发中收集的这篇文章主要介绍Ubuntu18.0 环境SpringMVC工程搭建遇到的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. org.apache.jasper.JasperException: java.lang.IllegalStateException: No output folder

关于这个原因主要是权限的问题,在tomcat/work/Catalina/localhost/,主要是这个目录没有被读写的权限,导致文件不能被编译到该指定的工作目录中,此时我们就要针对与这个目录做一些权限的修改权限至少要达到755或者以上,同时注意此处修改权限必须用root身份进行操作,否则不能进行修改,修改完后编译好的jsp文件就在localhost的目录当中了。发现了问题在于work/Catalina/localhost/中无法生成对应文件,把tomcat整个目录、work整个目录都修改了权限仍然不行。最后到具体的目录tomcat/work/Catalina/localhost/进行修改权限OK。

 我遇到的这个报错,是因为使用root启动过一次服务,后来用其他用户进行服务的启动,而在启动之前没有删除tomcat/work/目录下的内容,该目录下还是存在属主为root用户的Catalina目录,在使用其他用户执行启动时,由于该Catalina已存在,就不再重新创建,而是增量修改该目录,但是由于其他用户没有权限修改属主为root的目录和文件,因此报错。建议在每次停tomcat成功后,删除tomcat/work/*;如果不想每次都删除,一定要保证每次启动tomcat使用的用户要严格正确。

以上引自:https://blog.csdn.net/huangjin0507/article/details/46342835

2. 严重: Servlet.service() for servlet [jsp] in context with path [/xxx] threw exception

这种情况是由于Maven配置了tomcat,但是没有在Maven项目中导入jsp-api的jar包的时候,此时eclipse会报错,导入jar包之后eclipse不会报错,但运行的时候会自动把tomcat中jsp-api和javax.servlet-api一起导入,导致jar包重复了,就会出现如上问题。

解决办法:在pom.xml文件下修改jsp-api的坐标如下
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.2</version>
    <scope>provided</scope>   <!-- 配置这一项,运行的时候不会重复导入jsp-api的jar包 -->
</dependency>
同样javax.servlet-api的坐标也需要配置<scope>provided</scope>

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>${servlet.version}</version>
    <scope>provided</scope> <!-- 配置这一项,运行的时候不会重复导入servlet-api的jar包 -->
</dependency>

以上引自:https://blog.csdn.net/qaz379222123/article/details/99983864

3. Servlet url-pattern 的匹配规则

  1. servlet容器中的匹配规则既不是简单的通配,也不是正则表达式,而是特定的规则。所以不要用通配符或者正则表达式的匹配规则来看待servlet的url-pattern。
  2. Servlet 2.5开始,一个servlet可以使用多个url-pattern规则,<servlet-mapping>标签声明了与该servlet相应的匹配规则,每个<url-pattern>标签代表1个匹配规则;
  3. 当servlet容器接收到浏览器发起的一个url请求后,容器会用url减去当前应用的上下文路径,以剩余的字符串作为servlet映射,假如url是http://localhost:8080/appDemo/index.html,其应用上下文是appDemo,容器会将http://localhost:8080/appDemo去掉,用剩下的/index.html部分拿来做servlet的映射匹配
  4. url-pattern映射匹配过程是有优先顺序的
  5. 而且当有一个servlet匹配成功以后,就不会去理会剩下的servlet了。

以上引自:https://www.cnblogs.com/whyat/p/10512191.html

最后

以上就是仁爱小懒猪为你收集整理的Ubuntu18.0 环境SpringMVC工程搭建遇到的问题的全部内容,希望文章能够帮你解决Ubuntu18.0 环境SpringMVC工程搭建遇到的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部