【问题标题】:How to deploy servlets to a share Tomcat instance?如何将 servlet 部署到共享 Tomcat 实例?
【发布时间】:2010-10-03 20:53:38
【问题描述】:

我使用 Netbeans 创建了一个 servlet 应用程序,它可以在我的本地计算机上运行。现在我需要将应用程序部署到我的大学班级 Tomcat 6 实例。实例设置如下:/java/tomcat/webapps/<student_id>,其中student_id 是我班级的 30 个学生 ID。

为了让我的 servlet 能够正常工作,我究竟需要部署什么到 /java/tomcat/webapps/elvin?我没有这台机器的root访问权限,我只能写信给/java/tomcat/webapps/elvin

谢谢。

【问题讨论】:

    标签: deployment tomcat servlets


    【解决方案1】:

    最简单的方法是让 Netbeans 创建/构建一个 WAR 文件(项目的 /dist 文件夹中应该有一个),然后使用一些 ZIP 工具将其提取到本地,最后将提取的内容原封不动地复制到 /webapps/elvin

    需要检查的几件事:

    • Servlet 类应该放在一个包中。无包 servlet 在某些配置中会失败。无论如何,Java 类都应该放在一个包中。
    • web.xml 中声明的 Servlet 版本必须受相关 Tomcat 版本的支持。
      • Tomcat 7.0 支持最大 Servlet 3.0
      • Tomcat 6.0 支持最大 Servlet 2.5
      • Tomcat 5.5 支持最大 Servlet 2.4
      • Tomcat 5.0 支持最大 Servlet 2.3。

    【讨论】:

    • 我确实做到了,但找不到从我的 index.jsp 调用的 servlet。
    • servlet 类是否放在WEB-INF/classes/com/example/Servlet.class 中?包结构是否正确? servlet 是否映射到web.xml?您是否有权访问 Tomcat 启动/部署日志?
    • 是的,这些类在 WEB-INF 下的正确路径下。 servlet 映射在 web.xml 中。我使用了在本地机器上工作的相同 web.xml。
    • 日志怎么样? Servlet 在一个包中,对吗?它是哪个Tomcat版本? <web-app> of web.xml 中声明了哪个 Servlet 版本?
    • 好的,我找到了问题所在。我正在部署到 /webapps/elvin/project1。所以 WEB-INF 在 project1 下。一旦我将 WEB-INF 上移一个目录到 /webapps/elvin/WEB-INF,servlet 就正确执行了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    相关资源
    最近更新 更多