【问题标题】:Deploying a .war application on a tomcat server在 tomcat 服务器上部署 .war 应用程序
【发布时间】:2023-07-22 22:09:01
【问题描述】:

我正在尝试在我的 tomcat 服务器上部署我的 hello.war 文件(Java 应用程序)。

一开始我是从tomcat默认页面上的“Manager App”做的,然后它会在“应用程序”部分显示出来。 (附下红圈)

enter image description here

但是,当我尝试通过单击该链接 (https://ip-address/hello) 连接到它时,它给了我一个标准的“HTTP 状态 404 – 未找到”,其描述为:“源服务器没有找到目标资源或不愿透露存在的资源。” (下图)

enter image description here

我什至尝试将我的 hello.war 文件手动放入服务器中适当的文件夹位置(“/opt/tomcat/apache-tomcat-9.0.33/webapps”),并添加对“其他人”的读取、执行权限.war 文件,添加用户 'tomcat' 作为文件的所有者,重新启动服务。 但似乎仍然没有任何帮助,我仍然得到 404

【问题讨论】:

    标签: java tomcat war


    【解决方案1】:

    这意味着您在应用程序中没有默认起始页。在WebContent下创建index.html并刷新页面。为了测试,您可以将任何内容放入index.html,例如

    <html>
        <head>
            <title>Hello world</title>
        </head>
        <body>
            Welcome to my application
        </body>
    </html>
    

    查看this 了解更多信息。

    [更新]

    --- 根据来自 OP 的另一个请求(检查 cmets)发布以下更新 ---

    正如我在评论中提到的,您需要将请求转发到要显示查询结果的 JSP(例如 queryResults.jsp)。将以下代码放在 servlet 的 doGet 方法的末尾:

    String nextJSP = "/queryResults.jsp";
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
    dispatcher.forward(request,response);
    

    此代码会自动将请求转发到queryResults.jsp,您可以在其中访问保存在请求/会话对象中的查询结果。

    如有任何疑问/问题,请随时发表评论。

    【讨论】:

    • 是的!我正在为一家公司做这个项目,他们只给了我一个 ImageServlet.java 文件,该文件应该从我的数据库中查询一张图片。您知道如何将该查询的结果(通过调用 ImageServlet.java 文件)添加到我的 index.html 文件中吗?
    • 不客气。不要将查询结果添加到index.html。将index.html 保留为通用页面。您需要将请求转发到新的 JSP。让我更新我的答案以包括这一点。
    • 我怎样才能将 queryResults.jsp 中的图像附加到我的 HTML 页面?
    • 您能否用您的 Servlet、HTML 和 JSP 代码发布一个新问题,以便引起更多关注?