2

我已经在我的个人 linux 机器和 windows 上安装并配置了 tomcat+solr。我能够让他们正常工作。我对 Java 以及文件结构的工作方式非常陌生。(即知道将战争文件放在哪里以及 WEB-INF 是什么)所以现在我已经准备好安装 solr 并在我的客户共享主机计划上配置它,方向与我之前所做的不同。我不想把这搞砸,显然网络服务器每天都会重新启动,我认为我不能手动完成,这意味着我每天都有一个机会。

以下是在其托管服务提供商上安装 tomcat servlet 的说明:http: //www.apluskb.com/scripts/Where_do_I_put_my_answer1186.html

如您所见,我需要在 html/WEB-INF 目录下安装 solr,但请阅读它所说的内容。它非常令人困惑:

“所有的Servlet都应该上传到/html/WEB-INF/classes目录下。任何解压后的自定义类和资源都应该上传到/html/WEB-INF/classes目录下,而打包成Jar文件的类和资源应该上传到/html/WEB-INF/lib。”

呃……那是哪个?/上课?还是 /lib?我不认为他们解释得很好,我对这个说法有点困惑。另外我到底要安装什么?使用正常的 solr 安装,将 solr 放在其他位置,将 war 文件复制到 tomcat 中,并使用某种 XML 配置文件引用 solr 的其余部分。

此外,由于我对 Java 和 servlet 有点陌生,有人可以向我解释一下 tomcat 文件结构(非常详细肯定会让你从我那里得到 +1)以及事情应该去哪里以及为什么?

提前致谢!

4

1 回答 1

3

Web 应用程序结构由 J2EE 规范定义,它不限于(或特定于)Tomcat 本身。这是涵盖其布局的详细教程。但是,简而言之,如下所示:

  1. 有一个作为 Web 应用程序根目录的基础(根目录、主目录,无论你想怎么称呼它)文件夹,其他所有内容都在它之下。
  2. 所有公共内容(html、图像、CSS、javascript、JSP、你有什么)都在该文件夹下(直接或通过子文件夹)。
  3. 有一个特殊文件夹,也位于根目录下,名为WEB-INF. 它包含非公开的东西,如应用程序描述符 ( web.xml)、类(进入WEB-INF/classes文件夹)、库 ( WEB-INF/lib) 和可能的配置文件。
  4. 应用程序可以使用上面的扩展结构部署,也可以作为 WAR(Web 存档)部署,它基本上是一个包含上述所有内容的存档,从根文件夹级别开始(但不包括根目录)。

classes和文件夹的区别lib很简单:所有打包好的库(JAR文件)都需要进入lib;所有未打包的类(以及需要在类路径中的资源文件)都必须classes 保存它们的目录结构(例如com.mypackage.Blah类应该进入classes/com/mypackage/

在您的情况下,您似乎只能部署一个 Web 应用程序,并且必须将其部署到/html文件夹。如果你正在部署一个war 文件,你需要将它解压到那个目录中(例如从那个/html文件夹中运行jar xvf solr.war或者它被调用的任何东西)。

于 2009-08-01T18:00:29.277 回答