我想將Tomcat v5.5端口存儲在環境變量中,並讓Tomcat偵聽該端口。到目前爲止,我可以看到更改端口的唯一方法是修改$ CATALINA_HOME/conf/server.xml。有沒有辦法通過在啓動Tomcat時提供一個外部值來設置端口值?我在Solaris上運行Tomcat。實時更改Tomcat端口
回答
創建一個腳本來啓動Tomcat。在啓動腳本中,導出JAVA_OPTS以爲Tomcat屬性port.http.nonssl
指定一個值(請注意,無論您想要什麼,都可以調用此屬性)。
export JAVA_OPTS=-Dport.http.nonssl=${CATALINA_BASE_PORT}
正如你所看到的,我已經設置port.http.nonssl
環境變量${CATALINA_BASE_PORT}
然後,該腳本啓動Tomcat的:
$CATALINA_HOME/bin/startup.sh
現在,您需要更改Tomcat $CATALINA_HOME/conf/server.xml
文件,使非SSL HTTP連接器使用port.http.nonssl
屬性而不是硬編碼值。
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector port="${port.http.nonssl}" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
現在Tomcat將使用在$ {} CATALINA_BASE_PORT環境變量定義的端口,只要你通過新的啓動腳本啓動它。
這有點像使用大錘來破解螺母,但你可以使用嵌入在JBoss中的Tomcat,它具有統一的機制來替代任意配置文件中的系統屬性,包括tomcat server.xml 。您的環境變量可以作爲啓動腳本中的系統屬性傳遞(使用-D)。
JBoss的內核和tomcat的功能不多,所以你不需要運行整個拍攝比賽。但它仍然會比獨立的Tomcat重得多。
嗯,我覺得你說得對大錘 - 但也許我可以採取這個想法,並將Tomcat的startup.sh腳本包裝在另一個腳本中,並在執行startup.sh之前將server.xml中的端口替換爲我的環境變量。 – 2009-06-25 22:06:39
只是爲了跟進馬克·麥基弗的第一個答案,這裏是我的start_solr.bat文件,指定一個端口和一個環境變量:
if "%1" == "" goto displayUsage
set JAVA_OPTS=%JAVA_OPTS% -Dport.http.nonssl=%1 -Dsolr.solr.home=../../
call startup.bat
goto end
:displayUsage
echo.
echo Usage: start_solr.bat [port i.e. 9001]
goto end
:end
cd "%CURRENT_DIR%"
- 1. Eclipse Tomcat端口更改或在常規Tomcat實例中測試
- 2. 將Tomcat端口從8080更改爲80
- 3. liferay 6.1&Tomcat 7 - 更改端口
- 4. 如何更改tomcat端口號
- 5. Tomcat ajp端口每次更改與intelliJ
- 6. 如何更改XAMPP中的tomcat端口
- 7. 如何使用端口音頻實時更改端口
- 8. 如何將默認端口號更改爲Tomcat端口號8080?
- 9. 更改端口時出現Tomcat安裝錯誤
- 10. 更改端口
- 11. 更改pgsql端口
- 12. 更改Scalatra端口
- 13. PingFederate更改端口
- 14. 更改https端口
- 15. 更改vsftp端口
- 16. Spring引導 - 無法更改TomCat上的默認8080端口
- 17. 如何使用maven更改tomcat服務器的端口號
- 18. 如何更改使用spring啓動的embebed-tomcat默認端口?
- 19. 在tomcat中將http端口號從8084更改爲8080
- 20. 更改tomcat的監聽端口使用的sed
- 21. 無法更改使用彈簧啓動embebed-tomcat默認端口
- 22. 將tomcat服務器端口更改爲80不起作用
- 23. Tomcat端口號和server.xml中所需更改的可能值
- 24. Tomcat Javamail端口365?
- 25. 嘗試將Apache Tomcat端口從8080更改爲80時出現內存錯誤
- 26. tomcat綁定端口8080時的日誌
- 27. 在Tomcat中更改時區
- 28. 更改Jetty默認端口
- 29. 更改Oracle XE端口
- 30. 更改Jetbrain Upsource的端口
更好一步(特別是如果在CATALINA_BASE中使用多個實例) 創建一個文件「setenv.sh」添加JAVA_OPTS行並將其放置在實例的bin目錄中。 CATALINA_HOME/bin/setenv.sh或CATALINA_BASE/bin/setenv.sh – willCode4Beer 2009-09-03 19:04:50