Intellj Idea使用tomcat部署不成功,死活也找不到解决办法的看这里

摘要:
(Tomcat在两行蓝色单词中间输出的相关信息)但在周六部署时,我故意更改了web.xml配置,以验证配置文件是否真正被读取(我还检查了Intellij自动生成的Tomcat配置文件,以查看路径所指的部署项目(编译文件)是否存在,据说,在重新启动计算机后,删除Intellij配置的tomcat项目,然后添加它。否则,无论您如何更改web.xml文件(例如,使用未定义的标记)。

Intellij 周六晚上开发一个简单web项目的,使用tomcat打包部署,死活也没法部署成功,和这个问题怼了6个小时,也没搞清楚具体为什么不能访问页面,但是好在最后还是找了个方法把问题解决了。以下是问题的一些问题的描述和解决办法,如果你也遇到了相似问题,希望可以给你帮助:

问题描述:

1:部署看起来是成功的,启动的时候控制台不报任何错误,显示的是应用启动成功,但是浏览器访问无效,甚至就连配置的index.jsp也法自动访问;

2:部署时出现了out文件夹,每次重新部署时会更新这个文件夹中的文件;

3:正常的部署在部署时会加载相关配置,一般来说在“Artifact SimplestSpringMVCDemo:war: Artifact is being deployed, ”,这一句后面,是tomcat解析web.xml时的日志输出,类似这样:

Intellj Idea使用tomcat部署不成功,死活也找不到解决办法的看这里第1张

(在两行蓝字中间时Tomcat输出的相关信息)

但是我周六进行部署的时候,tomcat在两行蓝色之间,并没有打印出任何信息。

问题解决过程:

用过Intellj的童鞋应该都知道,在Intellij里面部署一个tomcat项目是简单的,只要配置一下tomcat的基本配置,然后选择添加要部署的artifact(也就是war包)就可以了。

但是一直部署不上,期间试过很多办法,也用自己的方式尝试改web.xml的配置,故意将web.xml的配置改错验证是否真的读取了这个配置文件(读取了,但是tomcat没有进行进一步的解析,也不知道为什么);也查看了Intellij自动生成的tomcat配置文件查看路径指向的部署的项目(编译后的文件)是否存在,但是一直没有找到正确的解决办法。

后来终于在stacak overflow上找到了一位仁兄的建议,说是重启电脑后把Intellij配置的tomcat项目删掉再添加进来就可以了,试了一下,果然OK。

解决方案总结:

重启电脑,将Tomcat部署的项目删掉,重新添加这个web项目。

 -----------------------------------------------------分割线,赶时间的不用继续看下去了--------------------------------------------------------------------------------------------------------------------------------------------------------------------

对问题的分析:

在解决该问题之后我回顾了一下,发现在成功部署时未产生out文件夹;

经过改动web.xml多次测试发现,如果将xml文件中的某个标签改动,使之不能成对匹配(如下图),那么控制台就会报错。否则不论如何改动web.xml这个文件(例如使用未定义的标签,改动spring配置文件使之错误)。说明web.xml还是被解析了的,但是其中的内容没有被tomcat的容器处理,也就是说tomcat读了,但是没有调用具体的流程去处理它。

Intellj Idea使用tomcat部署不成功,死活也找不到解决办法的看这里第2张

综合这两点考虑,是不是因为idea生成out文件夹并依据这个部署项目的话,tomcat无法正确读取项目的配置内容呢?

于是,我又想起了当年使用eclipse部署tomcat项目的时候,默认配置也是额外生成一个单独的web项目,类似这样

Intellj Idea使用tomcat部署不成功,死活也找不到解决办法的看这里第3张

通过conf里xml配置文件的内容指定去哪里读取web项目的所有文件:

路径(很久不用eclipse了,这个使idea的配置文件路径):IntelliJIdea2017.3system omcatUnnamed_SimplestDemos_5confCatalinalocalhost

<?xml version="1.0" encoding="UTF-8"?>
<!--docbase指定了项目发布的目录,path指定了浏览器访问的路径--> <Context docBase="D:ProgrammingGithubRepositorySimplestDemosSimplestSpringMVCoutartifactsSimplestSpringMVC_Web_exploded" path="/spring-mvc-study" reloadable="true" source="org.eclipse.jst.j2ee.server:spring-mvc-study" />

也是莫名其妙出问题,最后将eclipse里tomcat的配置改为部署到tomcat的web-app目录下,启动tomcat的所有项目才成功的。

所以是不是这种额外生成一个项目目录(而非war包)的方式无法被tomcat正确处理呢?

出于时间的关系,我没有继续进行探究了。不知道有没有大神明白这其中的原理呢?如果您知道这其中的曲折,请您留言或者联系我的邮箱ct_csu@foxmail.com,在此先多谢了!

免责声明:文章转载自《Intellj Idea使用tomcat部署不成功,死活也找不到解决办法的看这里》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇c#之多线程之为所欲为命名规则与代码规范下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

最短路径之(迪杰斯特拉)Dijkstra算法(及其改进:BF算法,SPFA算法),(弗洛伊德)Floyd算法

最短路径 最短路径问题是图的一个经典问题,常用的求最短路径的方法有 (迪杰斯特拉)Dijkstra算法,(弗洛伊德)Floyd算法。 Dijkstra算法用于求单源点最短路径问题,复杂度为O(n2),而Floyd算法用于求对每一对顶点之间的最短路问题(采用枚举法,枚举所有可能),复杂度为O(n3)。 一、Dijkstra算法: 迪杰斯特拉提出了一个按...

Nethunter开启ssh服务

本节用来纪念我和我的Nethunter SSH服务的血泪史 刚安装好Nethunter后,手机的各种功能也是令我眼花缭乱,对手机是爱不释手,可是,手机开启ssh服务之后,电脑无法连接,这就很尴尬了,于是寻求各种破解之法,拖拖拉拉今天才解决掉这个问题,接下来就给大家分享下我的ssh开启技巧。 一般开启服务是直接在Nethunter服务里面开启ssh服务...

iOS 内购集成与遇到的坑,添加新内购项目

转载请注明出处!!! 1.集成 集成内购的流程网上还是有很多的,在这我就不班门弄斧了。 附上几个比较好的链接: (1)http://www.jianshu.com/p/f7bff61e0b31 这个写的相当详细,里面也有一些细节,作者很好,给了我很多帮助。 (2)http://www.jianshu.com/p/86ac7d3b593a 这个也是比较详细...

vue 在nginx下页面刷新出现404问题解决和在nginx下页面加载了js但是页面显示空白问题解决

一、vue 在nginx下页面刷新出现404   在网上翻遍了所有这样问题的解决办法,全都是一个解决办法也是正确的解决办法,(后来在vue官网上关于history方式出现404解决方法也是这样说的),只是没有表达完整,可能会让比较急于解决这个问题的人简单复制却始终解决不了问题 nginx正确的配置: 1、如果是在根目录则配置如下 location / { ...

SAP GUI安装出现ocx错误提示的解决办法

安装SAP GUI 730到750版本,均出现安装错误,并且安装完成后无法正常使用,查看错误日志如下: 查看了官方的解决方案:https://apps.support.sap.com/sap/support/knowledge/preview/en/2469752 可能是由于电脑安装了第三方字体,导致错误。回想起来确实是因为有时候会做一些设计而安装了不...

koa的脚手架

1.什么是脚手架? 脚手架建成cli,koa的脚手架就是koa-cli 咱们之前在做koa框架开发的时候,会发现在一个项目中咱们的目录结构是非常清晰的,第三方包,模板,路由都会被规范到对应的文件夹中,但是在最后做项目的时候如果所有的文件和文件夹都需要自己创建,就会非常的麻烦,这时候koa中给咱们提供了一个叫做脚手架的东西; 什么是脚手架呢? 大家都知道盖...