Intellj Idea使用tomcat部署不成功,死活也找不到解决办法的看这里
Intellij 周六晚上开发一个简单web项目的,使用tomcat打包部署,死活也没法部署成功,和这个问题怼了6个小时,也没搞清楚具体为什么不能访问页面,但是好在最后还是找了个方法把问题解决了。以下是问题的一些问题的描述和解决办法,如果你也遇到了相似问题,希望可以给你帮助:
问题描述:
1:部署看起来是成功的,启动的时候控制台不报任何错误,显示的是应用启动成功,但是浏览器访问无效,甚至就连配置的index.jsp也法自动访问;
2:部署时出现了out文件夹,每次重新部署时会更新这个文件夹中的文件;
3:正常的部署在部署时会加载相关配置,一般来说在“Artifact SimplestSpringMVCDemo:war: Artifact is being deployed, ”,这一句后面,是tomcat解析web.xml时的日志输出,类似这样:
(在两行蓝字中间时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读了,但是没有调用具体的流程去处理它。
综合这两点考虑,是不是因为idea生成out文件夹并依据这个部署项目的话,tomcat无法正确读取项目的配置内容呢?
于是,我又想起了当年使用eclipse部署tomcat项目的时候,默认配置也是额外生成一个单独的web项目,类似这样
通过conf里xml配置文件的内容指定去哪里读取web项目的所有文件:
路径(很久不用eclipse了,这个使idea的配置文件路径):IntelliJIdea2017.3\system\tomcat\Unnamed_SimplestDemos_5\conf\Catalina\localhost
<?xml version="1.0" encoding="UTF-8"?>
<!--docbase指定了项目发布的目录,path指定了浏览器访问的路径-->
<Context docBase="D:\Programming\GithubRepository\SimplestDemos\SimplestSpringMVC\out\artifacts\SimplestSpringMVC_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部署不成功,死活也找不到解决办法的看这里的更多相关文章
- 20190713_(转)IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决办法 (转)
此文为转载; 原文链接地址: https://www.cnblogs.com/mrma/p/3529859.html ----------------------------------------- ...
- tomcat部署不成功 Deployment failure on Tomcat 6.x. Could not copy all resources to
解决办法: tomcat服务并没有启动.上网搜索之后发现和大家犯的是一个毛病,原来工程中我引了一个包,后来这个包被我给删除了,但是因为已经发布过这个工程了,所以classpath中就有这个包名了,这样 ...
- 本机tomcat的server.xml被还原的问题及解决办法
将tomcat的server.xml进行修改,但当eclipse发布站点后,发布tomcat中的server.xml会被还原. 原因是eclipse会将自己的tomcat配置文件对tomcat覆盖,解 ...
- discuz x3在DIY模块中调用伪静态不成功,显示动态链接的解决办法
discuz x3在DIY模块中调用伪静态不成功,显示动态链接,然而其他的链接正常显示伪静态. 后台启用伪静态后,发现论坛版块.帖子点击链接,伪静态正常显示,然后在门户首页DIY显示的帖子,点进去后发 ...
- IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决办法
IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法 IIS上部署MVC网站,打开后500错误:处理程序“ExtensionlessUrl ...
- Server Tomcat v7.0 Server at localhost failed to start解决办法
今晚搞了下tomcat,在调试的时候发现报了这样一个错误Server Tomcat v7.0 Server at localhost failed to start 首先,确认了端口号8080是不是被 ...
- Tomcat内存溢出(java.lang.OutOfMemoryError: PermGen space)的解决办法
Tomcat启动时报如下错误: java.lang.OutOfMemoryError: PermGen space 解决办法: 配置相关内存大小.其中按照启动tomcat的不同方式,分如下三种情况 a ...
- 帝国CMS“建立目录不成功!请检查目录权限”的解决办法
初次安装帝国CMS就遇到了一个问题,在提交或者修改信息的时候提示“建立目录不成功!请检查目录权限”,无法生成页面.检查了文件夹的读写权限和用户访问权限,发现都一切正常.那么到底是哪里出错了呢? 其实是 ...
- 关于Nginx启动成功,浏览器不能访问的解决办法
本人初学Nginx,第一天配置成功并能通过浏览器进行访问. 第二天重新打开,将Nginx启动,但是浏览器却访问不了. 执行 ps aux|grep nginx ,执行结果如下,的确Nginx服务已经启 ...
随机推荐
- Spring4 事务管理
Spring4 事务管理 本章是Spring4 教程中的最后一章,也是非常重要的一章.如果说学习IOC是知识的入门,那学习事务管理就是知识的提升.本章篇幅可能有一丢丢长,也有一丢丢难,需要读者细细品味 ...
- 盘点一下立过的flag并立几个flag
暑假前说了,要学opencv3,要看完冰火,要健身,要家教挣钱. 好样的,全都没落下. opencv3几乎是把80%的demo码了一遍. 冰火看完,还顺带学了一波知识,收获颇丰,搞到了马丁老爷子的几本 ...
- 【JDK1.8】JDK1.8集合源码阅读——TreeMap(二)
一.前言 在前一篇博客中,我们对TreeMap的继承关系进行了分析,在这一篇里,我们将分析TreeMap的数据结构,深入理解它的排序能力是如何实现的.这一节要有一定的数据结构基础,在阅读下面的之前,推 ...
- (译)学习JavaScript闭包
原文地址:https://medium.freecodecamp.org/lets-learn-javascript-closures-66feb44f6a44 闭包是JavaScript中一个基 ...
- 逻辑运算&数据
数据在计算机中只是0和1而已 数据在我们的理论中可以无穷大,但是在计算机中并不是,毕竟硬盘是有大小的. 具体可以通过一张图来理解 例如,0-F的表示 上面是有符号数,那么无符号数则是 事实上,计算机中 ...
- openstack集群环境准备
#0.openstack集群环境准备 openstack pike 部署 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html #openstack集群环境准 ...
- saltstack_grains
1. [root@kylin1 grains]# cd /srv/salt/_grains/ [root@kylin1 _grains]# ls cpu.py [root@kylin1 _grains ...
- mysql left join 几个意思
left join 用于多表 >1个表比如select a.*,b.* from ta as a left join tb as b on a.aid=b.bid咱们就以实际的代码来查看一下. ...
- Zookeeper 集群安装
负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据[均匀]分摊到多个操作单元上执行,负载均衡的关键在于[均匀].常见互联网分布式架构如上,分为客户端 ...
- 我这样减少了26.5M Java内存!
WeTest 导读 历时五天的内存优化已经结束,这里总结一下这几天都做了什么,有哪些收获.优化了,或可以优化的地方都有哪些.(因为很多事还没做,有些结论需要一定样本量才能断定,所以叫一期)一期优化减少 ...