中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 關于tomcat 多個配置多個host加載多次,導致initSerlet加載多次

關于tomcat 多個配置多個host加載多次,導致initSerlet加載多次

發布時間:2020-06-23 07:22:51 來源:網絡 閱讀:2537 作者:仰望_星空_ 欄目:開發技術

之前公司申請了五個域名,因為前期只有一個項目,所以老板要求多個域名對應到一個項目上,于是,我就在tomcat的web.xml上配置了多個host如下:

<Host name="www.XXX.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/XXXWebsite" debug="0" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="www.XXX1.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/XXXWebsite" debug="0" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="www.XXXX.cn" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/XXXWebsite" debug="0" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="www.XXXX.net" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/XXXWebsite" debug="0" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">

    <!-- SingleSignOn valve, share authentication between web applications
         Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->

    <!-- Access log processes all example.
         Documentation at: /docs/config/valve.html
         Note: The pattern used is equivalent to using pattern="common" -->
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log." suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />

  </Host>

這樣寫了。

然后大概過了幾個月,公司業務的增長,項目也多了,后來其中有個項目就是關于微信開發的,需要從微信端拿accessToken,項目的web.xml 配置了一個init的servlet,本來每次init一次,從微信端拿得accessToken,是正常的,但是部署到服務器之后,一直有問題,后來研究了很久,在 項目中也寫了很多log,到后面,才發現,是因為init這個servler 被執行了很多次導致的。沒執行一次拿到一個accessToken,然后之前訪問拿到的accessToken,跟最后一次項目的accessToken不匹配,導致了問題出現。

后來才知道,是因為前面配了5個host才導致這樣的問題的,因為當時對tomcat的web.xml配置不是很熟悉,后來網上搜了一堆,很巧合的發現了篇博客寫的,其實多個域名對應一個項目的話,可以使用web.xml 里面的一個標簽,<Alias>www.XXX.com</Alias>
標簽。

于是上面的配置就變成如下:

<Host
name="www.XXX.com" appBase="webapps" unpackWARs="true" autoDeploy="true">

<Context path="" docBase="/XXXWebsite"
debug="0" reloadable="true" />

<Alias>www.XXX1.com</Alias>

<Alias>www.XXXX.cn</Alias>

<Alias>www.XXXX.net</Alias>

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

prefix="localhost_access_log."
suffix=".txt"

          pattern="%h

%l %u %t "%r" %s %b" />

  </Host>

并且將引擎的<Engine></Engine> defaultHost="www.XXX.com">, 因為一個Engine 必須有一個host 跟 它的名字一樣,

這樣配置完之后,我們再去看log,此時只init方法只執行了一次。成功解決了問題。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长葛市| 山东省| 页游| 吉木乃县| 菏泽市| 芜湖市| 永登县| 云梦县| 奉节县| 衡东县| 逊克县| 汤原县| 北票市| 永清县| 弥渡县| 临朐县| 大连市| 桓仁| 潼南县| 灵璧县| 江城| 罗源县| 博客| 讷河市| 留坝县| 肥西县| 华坪县| 偏关县| 通化县| 灵宝市| 中山市| 兴义市| 新龙县| 三原县| 哈密市| 五大连池市| 庆云县| 菏泽市| 台州市| 淮阳县| 静乐县|