为什么安装 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。对于软件包的 vanilla 安装,init.d 脚本会自动将这些变量设置为:

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

如果您尝试以其他方式运行 Tomcat,则这些变量可能未正确设置,从而导致您所描述的错误。

打包的 Tomcat 服务器旨在用于在服务器上将 Tomcat 作为后台服务运行,因此实际上只能使用 init.d 脚本来启动和停止。如果您尝试在开发机器上运行 Tomcat(例如,从 Eclipise 等 IDE),那么您会发现包安装 Tomcat 的方式不合适,您应该使用以下方式安装私有实例:指示在服务器手册中或下载直接从 Tomcat 网站下载并手动提取。

相关内容