Intellij IDEA下一个Tomcat启动带多个虚拟目录和JDNI数据源应用的方法
為什么80%的碼農都做不了架構師?>>> ??
前言:
之前公司做的一個老項目代碼比較早,加上之前開發以實現功能為主,也沒有對編碼加以規范,開發中也有應屆畢業的小孩,所以代碼很爛。最近在重構過程中引出一些問題。
?
言歸正傳,場景是配置在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
轉載于:https://my.oschina.net/zhaky/blog/756470
總結
以上是生活随笔為你收集整理的Intellij IDEA下一个Tomcat启动带多个虚拟目录和JDNI数据源应用的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VS添加服务引用和 Web引用的区别
- 下一篇: meta详解