Intellij IDEA下一个Tomcat启动带多个虚拟目录和JDNI数据源的应用的方法
2016-10-10 17:52
363 查看
前言:
之前公司做的一个老项目代码比较早,加上之前开发以实现功能为主,也没有对编码加以规范,开发中也有应届毕业的小孩,所以代码很烂。最近在重构过程中引出一些问题。
言归正传,场景是配置在Idea中的一个Tomcat中启动多个配置在server.xml中的虚拟目录应用
原来的开发环境是eclipse+Tomcat插件+Tomcat
server.xml中虚拟目录的配置是这样的
带有数据源配置的Context
现在想改为idea+Tomcat实现
idea中的Tomcat的配置一般是这样的
按照上述配置并且更改了server.xml中虚拟目录的mac系统中文件路径后发现,加载的第一个项目根本无法启动。
尝试一:
网上查资料找到一个说要勾选如下配置
Deploy applications configured in tomact instance
照做之,发现第一个应用可以加载了但是,JDNI的数据源获取不到,郁闷;
什么原因呢,按理说虚拟目录你都加载了怎么会获取不到数据源呢,这就需要了解下,Tomcat在ide中加载机制了。
尝试二:
参考如下文章,感谢开发者头条和以下文章的作者。
IDE里的Tomcat是如何工作的
http://mp.weixin.qq.com/s?__biz=MzI3MTEwODc5Ng==&mid=401107149&idx=1&sn=908bd8ba76b38417570056795626c163#rd
原来Intellij IDEA。在启动Tomcat时,Log一开始就能看到类似于下面的内容:
IDEA是通过Tomcat的MBean,动态的向tomcat增加了一个Context,即一个应用。这样直接指定了应用的路径,访问路径等
也就是说idea是动态生成了一个context.xml 或者server.xml 而没有用默认的server.xml中我们之前做的配置。了解到这点我做了如下尝试;
找到其动态生成目录的context.xml文件更改其虚拟目录配置为我们需要的配置,验证发现并不生效。
每次在idea中重启Tomcat都将我们更改的配置覆盖了。
这就郁闷了难道就没有解决方案了吗?
后面在stack overflow找到一个方案试了下
如下图所示
增加CATALINA_BASE变量配置覆盖idea中的默认配置指向我们的Tomcat目录重新启动
发现CATALINA_BASE已经变为我们自定义的路径且项目可正常启动。并且可正常获取到server.xml中配置的数据源。
遗留问题:
1、重新部署添加war包时会将webapps中的应用路径删掉,导致运行时提示木有对应项目目录,需要在webapps中手动添加目录才可以正常启动自动deployed
之前公司做的一个老项目代码比较早,加上之前开发以实现功能为主,也没有对编码加以规范,开发中也有应届毕业的小孩,所以代码很烂。最近在重构过程中引出一些问题。
言归正传,场景是配置在Idea中的一个Tomcat中启动多个配置在server.xml中的虚拟目录应用
原来的开发环境是eclipse+Tomcat插件+Tomcat
server.xml中虚拟目录的配置是这样的
带有数据源配置的Context
现在想改为idea+Tomcat实现
idea中的Tomcat的配置一般是这样的
按照上述配置并且更改了server.xml中虚拟目录的mac系统中文件路径后发现,加载的第一个项目根本无法启动。
尝试一:
网上查资料找到一个说要勾选如下配置
Deploy applications configured in tomact instance
照做之,发现第一个应用可以加载了但是,JDNI的数据源获取不到,郁闷;
什么原因呢,按理说虚拟目录你都加载了怎么会获取不到数据源呢,这就需要了解下,Tomcat在ide中加载机制了。
尝试二:
参考如下文章,感谢开发者头条和以下文章的作者。
IDE里的Tomcat是如何工作的
http://mp.weixin.qq.com/s?__biz=MzI3MTEwODc5Ng==&mid=401107149&idx=1&sn=908bd8ba76b38417570056795626c163#rd
原来Intellij IDEA。在启动Tomcat时,Log一开始就能看到类似于下面的内容:
IDEA是通过Tomcat的MBean,动态的向tomcat增加了一个Context,即一个应用。这样直接指定了应用的路径,访问路径等
也就是说idea是动态生成了一个context.xml 或者server.xml 而没有用默认的server.xml中我们之前做的配置。了解到这点我做了如下尝试;
找到其动态生成目录的context.xml文件更改其虚拟目录配置为我们需要的配置,验证发现并不生效。
每次在idea中重启Tomcat都将我们更改的配置覆盖了。
这就郁闷了难道就没有解决方案了吗?
后面在stack overflow找到一个方案试了下
如下图所示
增加CATALINA_BASE变量配置覆盖idea中的默认配置指向我们的Tomcat目录重新启动
发现CATALINA_BASE已经变为我们自定义的路径且项目可正常启动。并且可正常获取到server.xml中配置的数据源。
遗留问题:
1、重新部署添加war包时会将webapps中的应用路径删掉,导致运行时提示木有对应项目目录,需要在webapps中手动添加目录才可以正常启动自动deployed
相关文章推荐
- Intellij IDEA下一个Tomcat启动带多个虚拟目录和JDNI数据源应用的方法
- Tomcat 6.0下创建虚拟目录的三种方法
- Tomcat基本入门知识及发布,虚拟访问及启动碰到的错误,虚拟目录,虚拟路径,各种Tomcat的配置
- Tomcat之URL配置(IP,端口号,默认应用,虚拟目录)
- 【Tomcat 8.0】两种方法配置servlet虚拟目录
- 解决应用启动失败但tomcat不报错的方法
- Tomcat6.0虚拟目录配置方法
- Tomcat虚拟目录的配置方法
- Tomcat 配置虚拟目录的一种方法
- Tomcat 6.0下创建虚拟目录的几种方法
- Tomcat设置虚拟目录的方法, 不修改server.xml
- 日常小结-tomcat结构目录、web应用及虚拟目录的映射
- Resin中虚拟目录、数据源、Servlet的配置方法
- Tomcat设置虚拟目录的方法, 不修改server.xml
- Tomcat设置虚拟目录的方法,不修改server.xml
- Tomcat设置虚拟目录的方法, 不修改server.xml
- Tomcat设置虚拟目录的方法
- Tomcat中web工程虚拟目录的配置方法
- tomcat加载web应用虚拟目录三种方式(推荐第三种)
- tomcat 虚拟目录的配置方法