gpt4 book ai didi

jakarta-ee - 您如何部署 Web 应用程序?

转载 作者:行者123 更新时间:2023-11-28 23:03:41 25 4
gpt4 key购买 nike

根据文档中的快速入门部分,somewar.war 文件在默认配置中部署为 localhost:8080/somewar/。

根据 this ,我所要做的就是这样:

package de.swt1321.servlet;

import java.io.OutputStream;
import java.io.IOException;

import javax.servlet.annotation.WebServlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns={"/","/index.html"}, loadOnStartup=1)
public class ServletTest extends HttpServlet {
private static final java.nio.charset.Charset UTF8 = java.nio.charset.Charset.forName("UTF8");

@Override
protected void doGet(HttpServletRequest req,
HttpServletResponse res) throws ServletException, IOException
{
byte[] HTML = "<html><head><title>Hello World!</title></head><body><h1>IT WORKED!</h1></body></html>".getBytes(UTF8);
res.setStatus(HttpServletResponse.SC_OK);
res.setHeader("content-type","text/html;charset=utf8");
res.setIntHeader("content-length",HTML.length);
OutputStream os = res.getOutputStream();
os.write(HTML);
os.flush();
}
}

除了他方便地从“创建类”转到“部署项目”。这就是我被困的地方——显然我做错了什么。我正在使用 buildr 在 war 中打包整个东西,最后得到这样的东西:

ServletTest.war:
META-INF -> MANIFEST.MF
WEB-INF ->
classes ->
de ->
swt1321 ->
servlet->
ServletTest.class
lib -> javaee-web-api-6.0.jar

将其放入 webapps 文件夹中,我希望从我的响应中获取 html。相反,我得到一个页面,其中包含 2 个名为 META-INF 和 WEB-INF 的链接,这些链接指向 404 页面。

恐怕我错过了一些我应该在这里做的事情,不幸的是,我在网上只能找到直接跳到“现在然后将整个东西打包为一个网络应用程序......”的代码片段和 jetty 文档似乎假设我已经知道 web 应用程序的样子(并且似乎主要关注各种配置选项,实际上我可能会对我是否真的首先让该死的东西工作而胡扯)。

我应该怎么做才能让它发挥作用?

编辑

更改标题是因为虽然我最初使用 Jetty 9 对此进行了测试,但它也不适用于 Tomcat 7,存在基本相同的问题 - 显然应用程序已被识别(显示在管理器中)但 servlet 似乎没有工作(如果它被使用的话)。在这一点上我非常沮丧。

最佳答案

jetty-8 和 jetty-9 支持 servlet 3.0,但您必须确保在 start.ini 中启用注释扫描,编辑该文件,将“annotations”添加到 OPTIONS 行并取消注释 jetty-annotations.xml 行

而且你似乎在你的 war 中缺少一个 web.xml 文件

我们似乎收到了相当多的这个问题,所以我会看到默认情况下启用注释,尽管它们使启动时间比需要的时间长得多,因为大多数人不理会它们似乎所以为什么要惩罚每个人...我们会考虑一下。

[编辑] imo 如果你刚开始,你最好学习注释背后的细节,比如如何在 web.xml 中配置 servlets...注释只是 servlet-api 之上的一点魔法

关于jakarta-ee - 您如何部署 Web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13869756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com