java - 不能把任何东西放到/var/lib/tomcat7/webapps/

标签 java jsp ubuntu webserver tomcat7

我今天开始进行JAVA web 开发,遇到了一些问题,我在我的ubuntu 机器上安装了我的tomcat7。现在,当我浏览到//localhost:8080 时,我会看到默认的欢迎页面:

这是默认的 Tomcat 主页。它可以在本地文件系统中找到:/var/lib/tomcat7/webapps/ROOT/index.html

Tomcat7 老手可能会很高兴得知这个 Tomcat 系统实例安装在 /usr/share/tomcat7CATALINA_BASE 中的 CATALINA_HOME/var/lib/tomcat7 中,遵循 /usr/share/doc/tomcat7-common/RUNNING.txt.gz 中的规则。

但奇怪的是,当我尝试 echo $CATALINA_HOME 时,没有任何显示。 此外,我无法在默认/var/lib/tomcat7/ROOT 中复制/创建任何内容,尽管这只是提供一些权限的问题,但我想知道这是否是正确的方法?,

我想做的是在我的家里创建一个单独的目录,我可以在其中放置我的 Web 应用程序,并且 tomcat 可以从那里读取下摆。有办法吗?在 apache 中,我可以通过更改文档根目录和目录来做到这一点,但我不知道如何为 tomcat 做到这一点

最佳答案

But strangely when I try echo $CATALINA_HOME nothing shows up.

这是因为打包版本在启动 Tomcat 之前设置了 CATALINA_HOME,在从配置文件(通常在/etc 中的某处)读取它之后。

Also I can not copy/create anything in the default /var/lib/tomcat7/ROOT though it's just a matter of providing few permissions but I was wondering whether it is the right way to do it?

权限问题与您不是 root(或 Tomcat 用户)有关。大多数打包的 Tomcat 安装(deb 或 RPM)往往会在安装时考虑到特定用户,并且有时将不同的东西复制进去是行不通的。

/usr/share/tomcat7 是您的 CATALINA_HOME 目录,它有指向其他目录的链接,例如 /var/lib/tomcat7/webapps /etc/tomcat7等。你不应该直接复制到一个web应用程序中,你应该将web应用程序打包成一个WAR文件并“部署”它。优点很多。

What I would like to do is create a separate directory in my home where I can put my web application and tomcat can read hem from there. Is there a way to do it?

是的,一个是在“部署网络应用程序”时创建的。查看标准的 Tomcat7 文档,如果您喜欢非命令行界面,请考虑安装“管理器”Web 应用程序。既然您知道 Web 应用程序的“安装”是什么,这可能是一项更容易的任务。

In apache I can do it by changing the document-root and directory but I don't know how to do it for tomcat

Tomcat 对文档根有一套不同的、稍微更严格的要求。您需要学习它,并接受它永远不会相同的想法。基本上在“webapps”目录下,是一个 WAR 文件或来自 WAR 文件的扩展目录。就地编辑对 Tomcat 来说不是一个好主意,因为 CGI 等效项不会在每次运行时从磁盘读取,它们会链接到 Tomcat 的内存中。这意味着目录中的更改可能不会影响您的 Web 应用程序,这足以成为不必为已部署的 Web 应用程序更改磁盘文件的充分理由。

修改 Web 应用程序,重新打包,并更新部署。这确实是使用 Tomcat 的“正确”方式。

关于java - 不能把任何东西放到/var/lib/tomcat7/webapps/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11598852/

相关文章:

java - 使用 AppNotificationReceiver 收到通知后将数据传递给 MainActivity

java - 如何使用 Java 将文件从一个文件夹复制到另一个文件夹?

database - 如何使用 jSTL 从数据库填充下拉列表?

jsp - html表单字段作为struts表单中的数组元素

bash - 检查哪个文件较新

ruby-on-rails - 在 Ubuntu 上使用 nginx 和 Passenger 时环境变量放在哪里

java - 如何在 Java8 Lambda 中编写这个 for 循环

java - Jenkins 中算法协商失败

java - 没有提取任何数据。为什么?

mysql - django.db.utils.OperationalError : (1366, "不正确的字符串值) django mysql