(原創)項目部署-Tomcat設置默認訪問項目及項目重復加載問題處理


主要是通過配置<Tomcat安裝目錄>/conf/server.xml文件

步驟: 
1、打開server.xml,在</Host>的上一行添加內容格式如下 
<Context path="" reloadable="true" docBase="<項目名>"/> 
如: 

<Host name="www.abc.com" appBase="webapps" 
unpackWARs="true" autoDeploy="true" 
xmlValidation="false" xmlNamespaceAware="false"> 

<!-- 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 --> 
<!-- 
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> 
--> 
<Alias>www.123.org</Alias> 
<Alias>www.abc.com</Alias> 
<Context docBase="virgocloud" path="" reloadable="true"></Context> 
</Host> 
</Engine>

另:如果想要只輸入IP或域名就可以訪問的話,那就把Tomcat的端口設置為80(但需確認此端口有沒有其它程序占用),修改如下:

<Connector port="80"  maxHttpHeaderSize="8192" 
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
    enableLookups="false" redirectPort="8443" acceptCount="100" 
    connectionTimeout="20000" disableUploadTimeout="true" />

注:通過上面的設置有一個問題就是項目會重復加載兩次.

原因分析 
1.當為 Host 容器 設置了 appBase 屬性時, Tomcat 會在啟動時自動加載 appBase 指定目錄下的所有合法工程;
2. 由於同時又通過 Context 的docBase 屬性設置了Tomcat 默認工程, 所以,指定的 jkcm,virgocloud工程又會被加載一次 
基於以上兩點,造成了 jkcms,virgocloud工程的重復加載。

解決辦法 
1. 新建一個目錄專門用於存放工程, 如:C:\virgocloud\software\apache-tomcat-7.0.57\deployproject

2. 將工程存放到以上目錄下:即:C:\virgocloud\software\apache-tomcat-7.0.57\deployproject

3. 在 Context 容器中設置 docBase 屬性, 如: 
<Context path="" docBase="C:\virgocloud\software\apache-tomcat-7.0.57\deployproject\jkcms" />

<Host name="www.abc.com" appBase="webapps" unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"> 
<!-- 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 --> 
<!-- 
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> 

--> 
<Alias>www.123.org</Alias> 
<Alias>www.abc.com</Alias> 
<Context docBase="C:\virgocloud\software\apache-tomcat-7.0.57\deployproject\virgocloud" path=""reloadable="false"></Context> 
</Host> 
<Host name="cms.abc.com" appBase="webapps" unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"> 
<!-- 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 --> 
<!-- 
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> 
--> 
<Context docBase="C:\virgocloud\software\apache-tomcat-7.0.57\deployproject\jkcms" path=""reloadable="false"></Context> 
</Host>

至此問題解決,重啟Tomcat服務器就可以通過不加項目名訪問此項目. 
注意:記得把webapps目錄下的原項目刪除

轉載:請注明www.virgocloud.com或www.xujin.org


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM