簡體   English   中英

為什么Intellij-IDEA會忽略我的tomcat / conf / server.xml Context標簽?

[英]Why does Intellij-IDEA ignore my tomcat/conf/server.xml Context tag?

在我的$ TOMCAT_HOME / conf / server.xml中,我將此放在底部:

...

 <Context path="/staticdir" docBase="/filesystem/path/to/static/dir"/>                                

      </Host>
    </Engine>
  </Service>
</Server>

我這樣做是因為我的文件系統上有一些文件,當您轉到localhost:8080 / staticdir時,我希望雄貓提供服務

但是,當我在Intellij-IDEA中啟動應用程序時,tomcat日志顯示如下:

使用CATALINA_BASE:“ C:\\ Users \\ me.IntelliJIdea11 \\ system \\ tomcat \\ Unnamed_Product_2”

如果我進入文件系統上的該目錄並查看conf / server.xml文件,則該文件中沒有Context標簽。 為什么intellij對此進行修改,我該如何預防?

我有一種感覺,我應該對$ TOMCAT_HOME / conf / context.xml文件進行此更改,但是我很難在其中找到如何進行此更改的示例。 如果有人可以給我看一個例子,我會認為這是一個答案,因為我注意到intellij不會修改該文件。


我找到了一種解決方法。

在此處輸入圖片說明

但是我真的不喜歡這樣,因為當新用戶第一次嘗試運行該應用程序時,我無法想象有一種方法可以檢測到他們錯誤地執行了此步驟。

這是我的tomcat配置的圖片:

在此處輸入圖片說明

默認情況下,IntelliJ IDEA修改CATALINA_BASE環境,以便Tomcat使用調整后的配置文件直接從工件輸出位置部署應用程序,但是可以覆蓋此行為並手動配置所有內容(通過將工件輸出更改為進入webapps或更改與IDEA一樣的服務器配置,以便從標准工件輸出進行部署)。

我在Tomcat / IntelliJ中需要ROOT上下文,因此在Host標記的server.xml中,添加特定的Context:

<Context path="" docBase="C:\intranet\app\tomcat\webapps\ROOT\" reloadable="true" />

在intelliJ 11.1.5中,在“服務器”選項卡面板中,選中“部署在Tomcat實例中配置的應用程序”復選框,IntelliJ將在文件夾部署中復制server.xml:

C:\Users\{Username}\.IntelliJIdea11\system\tomcat\Unnamed_Product_2\conf"

現在,我可以通過示例crossdomain.xml來訪問根域中的資源:

http://localhost:8080/crossdomain.xml

在“啟動/連接”選項卡中,按照下面“傳遞環境變量”部分所述添加數據。 重新啟動,僅此而已。

Name           Value
------------   -----
CATLINA_BASE   {Tomcat Installation directory}

我復制了服務器,發現我的日志文件存儲在錯誤的位置。

因此,對於“ Tomcat產品”,它實際上是在使用catalina.base=".../preprod/..."

我最后編輯了我安裝IntelliJ的位置旁邊的projects/.idea/workspace.xml

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM