最近要做POC,接了个老项目改,使用war exploded部署到本机的Tomcat(8.5版)

通过Intellij IDEA启动Tomcat的时候发现系统的登录页面出现HTTP-status-404错误,这时直接在浏览器中打开http://localhost:8080则能打开Tomcat的欢迎页面,说明Tomcat起来了,但是没有正确加载webapps目录下的东西。

更奇怪的是,通过Tomcat的bin目录下的启动脚本就可以正常启动,无论是双击startup.bat还是在该目录的cmd下使用catalina.bat run都能正常启动项目。

如果有类似情况的朋友,可以留意一下两种启动方式在启动时日志里面的环境变量,特别是CATALINA_HOME。

因为在我的机器上,两种方式启动时这个变量的值是不一样的,在bin目录下通过bat脚本启动时,CATALINA_HOME就是该bin所在的Tomcat目录;

但是通过Intellij IDEA启动时,该变量的值变为了:C:\Users\Cratical\.IntelliJIdea2017.1\system\tomcat\Unnamed_Test-Project_3_0_4

两个目录下面都有conf文件夹,文件夹里面的配置文件的名称和数量也都一样,通过比对,发现conf目录下,server.xml的内容有一些区别,注意这一行

<Host name="localhost" appBase="C:\Tomcat\webapps" unpackWARs="true" autoDeploy="true" deployOnStartup="false" deployIgnore="^(?!(manager)|(tomee)$).*">

因为在Intellij IDEA中,一个war格式的artifact是可以修改Output Directory的位置的,默认值是当前Project根目录下的target文件夹;如果直接使用Intellij IDEA启动Tomcat的时候,Tomcat目录下的webapps目录是找不到相关部署文件夹的。

而Intellij IDEA是通过生成自己的一个CATALINA_HOME,修改其中的server.xml中的appBase来实现这个目标的。

回到上面那行配置,注意那个deployIgnore属性,我的web目录名称正好被上面的正则表达式匹配到,所以Tomcat在加载的时候就直接忽略了,导致了那个404错误。

Tomcat server.xml中各项配置的含义,参见:http://www.importnew.com/17124.html

Intellij IDEA + Tomcat 出现 HTTP status 404错误的解决办法的更多相关文章

  1. IIS7.5 URL文件名有加号或空格显示404错误的解决办法

    转:http://www.gyd.cc/zhuanti/tech/9319.html 将服务器由windows2003升级到windows2008后,某个网站的图片突然不能显示,显示404错误, 后来 ...

  2. 学习笔记:IIS搭建PHP网站出现404错误的解决办法

    关于404错误提示相信大家都遇到过吧,记得我遇到这个问题的时候,弄得我焦头烂额的,今天给大家分享下,使用IIS大家PHP网站时出现404错误提示的处理方法,希望对各位朋友有所帮助.IIS搭建PHP出现 ...

  3. 关于wordpress文章分类显示404错误的解决办法。

    闲来无事,在虚拟主机上装了一个wordpress尝试自己搭一个博客玩一下,发现文章分类一直显示404错误,网上查了好久,终于找到解决方法,其实很简单,只要将分类的别名改成英文的就解决了,分类中不能包含 ...

  4. AspNet Mvc 路由解析中添加.html 等后缀 出现404错误的解决办法

    使用Mvc 有时候我们希望,浏览地址以.html .htm 等后缀名进行结尾. 于是我们就在RouteConfig 中修改路由配置信息,修改后的代码如下 routes.IgnoreRoute(&quo ...

  5. 遇到IIS7配置PHP出现403和404错误的解决办法

    服务器要配置PHP,总是出现403错误.服务器是新装的,操作系统是windows server 2008 R2,装的IIS7. IIS里PHP和本地服务器对比了好几遍,都没到出错的原因,后来通过cmd ...

  6. tp5 url 线上访问 在nginx 上 出现404错误,解决办法(1.80nginx 配置 pathInfo)

      对于ThinkPHP的URL访问路劲如:http://域名/index.php/Index/BlogTest/read,原先的Nginx的是不支持的pathinfo路劲的,导致你在thinkPHP ...

  7. wordpress修改固定链接及修改链接后链接提示404错误的解决办法

    wordpress默认的url实在是不好看又不好记忆,而且还不利于SEO.因此,我就捣鼓着把url做一个自定义.自定义的方式如下: 建议使用/%postname%的形式,这样利于SEO. 修改之后,l ...

  8. springboot打war包后部署到tomcat后访问返回404错误

    springboot打war包后部署到tomcat后访问返回404错误 1.正常情况下,修改打包方式为war <packaging>war</packaging> 2.启动类继 ...

  9. paip.http 404错误 的解决

    paip.http 404错误 的解决 错误原因 1.查看web服务器log...看是否错误... 2.使用了spring 或者struts 等等mvc框架,但是设置错误.. 3.web服务器使用了配 ...

随机推荐

  1. Java处理文件BOM头的方式推荐

    背景: java普通的文件读取方式对于bom是无法正常识别的. 使用普通的InputStreamReader,如果采用的编码正确,那么可以获得正确的字符,但bom仍然附带在结果中,很容易导致数据处理出 ...

  2. Python 统一动态创建多个model对应的modelForm类(type()函数)

    一.ModelForm的用法 ModelForm对用户提交的数据有验证功能,但比Form要简单的多 from django.forms import ModelForm # 导入ModelFormcl ...

  3. django实现动态菜单的方式

    1.model from django.contrib.auth.models import User #django自带 class UserProfile(models.Model): " ...

  4. LaTeX的一些宏包及细节知识

    文章来源:LaTeX的一些宏包及细节知识http://blog.chinaunix.net/uid-20289887-id-1710422.html ps:我的机器上软件并不能直接运行通,下面“代码” ...

  5. (3)java运行

    java文件后后缀名为 .java 一个java文件的运行需要分为两个阶段,编译阶段和运行阶段 编译阶段 检查java源代码的语法是否错误 生成对应平台的.class文件 例如 :有个A.java的文 ...

  6. poj1789 最小生成树

    题目连接:http://poj.org/problem?id=1789 Description Advanced Cargo Movement, Ltd. uses trucks of differe ...

  7. 关于 hibernate 中 hashCode爆栈的探讨

    今天在 hibernate 的一对多映射测试 merge 方法时,出现了以下的异常: 我们可以看到,这里的错误有非常明显的重复性,很显然是做了间接递归,并且递归的调用是 hashMap 中的hashC ...

  8. office中密码的移除方法

    密码有两种,一种是修改密码,一种是访问密码,通常两种密码的创建位置不同.对于访问密码,只需要在文件→信息 中将密码删除 对于修改密码,则要输入密码以后另存,然后在保存窗口里边点工具,下拉菜单里选常规选 ...

  9. bzoj3942

    有一个S串和一个T串,长度均小于1,000,000,设当前串为U串,然后从前往后枚举S串一个字符一个字符往U串里添加,若U串后缀为T,则去掉这个后缀继续流程.将s中的每一个字符压入栈暴力将s中的字符和 ...

  10. UVA 699 The Falling Leaves (递归先序建立二叉树)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/19244 #include <iostream> #include <cstdio> # ...