簡體   English   中英

如何配置<context>如果應用程序文件夾名稱與上下文名稱不同,在多實例 Tomcat 中?</context>

[英]How to configure <Context> in a multi instance Tomcat if the application folder name is different from the context name?

我的設置:操作系統 - macOS Catalina Tomcat v9.0.20

$CATALINA_HOME - /usr/local/apache-tomcat-9.0.20
$CATALINA_BASE - /usr/local/tomcat_instance/idev

實例的 $CATALINA_BASE/conf/server.xml

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8205" shutdown="SHUTDOWN">
    
    <Connector port="8280" protocol="HTTP/1.1" connectionTimeout="20000"
        redirectPort="8443" />
    
    <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    </Host>
    
</Server>

該應用程序是部署為展開文件夾(not.war 文件)的 Java/SpringBoot 應用程序。

應用程序的部署文件夾 - /usr/local/tomcat_instance/idev/webapps/handbook-server.

application.properties
    server.servlet.context-path=/handbook

我希望我的應用程序具有 /handbook 的上下文,因此我可以像這樣訪問它:http://localhost:8280/handbook

我的應用程序的上下文文件 $CATALINA_BASE/conf/handbook.xml

<Context
    docBase="/handbook-server" 
    path="/handbook" 
    reloadable="true" 
/>

在 SO 中查看了一些類似的問題后,我嘗試將 docBase 設置如下:

  1. docBase="/handbook-server"
  2. docBase="手冊服務器"
  3. docBase="手冊服務器"
  4. docBase="/usr/local/tomcat_instance/idev/webapps/handbook-server"

上述所有 docBase 設置均無效。

如果我以 http://localhost:8280/handbook-server 的身份訪問該應用程序,則該應用程序可以工作

設置 docBase 值的正確方法是什么? 任何答案和建議將不勝感激。 提前致謝。

我能夠完成以下工作:

  1. 創建了一個文件夾來保存 $CATALINA_BASE/idev/conf/Catalina/localhost 中的上下文定義

  2. 創建 $CATALINA_BASE/idev/conf/Catalina/localhost/handbook.xml

     <Context docBase="../apps/handbook-server" path="/handbook" reloadable="true"/>
  3. 在 webapps 文件夾$CATALINA_BASE/idev/apps/handbook-server之外創建了應用程序的部署文件夾

要訪問該應用程序,我將瀏覽器指向 http://localhost:8280/handbook

如果有人有將應用程序放置在 webapps 中的解決方案,如果您可以發布它,我將不勝感激。

暫無
暫無

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

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