為什麼安裝tomcat6需要建立到/usr/share/java的軟連結?

為什麼安裝tomcat6需要建立到/usr/share/java的軟連結?

我按照此處的說明在 lucid 上安裝了 tomcat6:https://help.ubuntu.com/10.04/serverguide/C/tomcat.html

(我沒有創建實例級版本 - 系統級版本很好)

當我嘗試啟動它時,我在日誌中收到以下錯誤:

java.lang.ClassNotFoundException: org.apache.catalina.startup.Catalina
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:216)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:391)

透過執行以下操作解決了此問題:

root@...:/var/lib/tomcat6# ln -s /usr/share/java lib

為什麼我需要這樣做?為什麼它不適合開箱即用? (為什麼這不在Ubuntu Tomcat 手冊

答案1

使用以下指令安裝 Tomcat:

sudo apt-get install tomcat6

應該可以將 Tomcat 作為服務安裝並啟動。可以使用以下命令啟動和停止該服務:

sudo /etc/init.d/tomcat6 start
sudo /etc/init.d/tomcat6 stop

http://localhost:8080/您可以透過使用瀏覽器或從命令列查看來驗證服務是否正在執行:

curl http://localhost:8080/

如果這對您來說不是開箱即用的,那麼您的電腦的設定方式或您嘗試執行 Tomcat 服務的方式可能會有些奇怪。

如果您嘗試以使用 /etc/init.d/tomcat6 腳本之外的任何方式執行 Tomcat,您可能會遇到麻煩。有兩個環境變數定義 Tomcat 發行版和檔案的位置; CATALINA_HOME 和 CATALINA_BASE。對於軟體包的普通安裝,這些最終將由 init.d 腳本自動設定為:

CATALINA_HOME=/usr/share/tomcat6
CATALINA_BASE=/var/lib/tomcat6

如果您嘗試以其他方式執行 Tomcat,則這些變數可能未正確設置,這可能會導致您所描述的錯誤。

打包的 Tomcat 伺服器旨在用於將 Tomcat 作為伺服器上的後台服務運行,因此實際上只能使用 init.d 腳本啟動和停止。如果您嘗試在開發電腦上執行 Tomcat(例如,從 Eclipise 等 IDE),那麼您會發現套件安裝 Tomcat 的方式不合適,您應該使用以下方式安裝私人實例:指示在伺服器手冊中或透過下載直接從 Tomcat 網站並手動提取。

相關內容