gpt4 book ai didi

java - 如何在 OSGi 中使用 servlet

转载 作者:太空狗 更新时间:2023-10-29 13:10:41 25 4
gpt4 key购买 nike

我想创建 Web 服务并将其部署到 OSGi 容器。比如发布服务到地址:

http://localhost:8080/testservice. 

该服务在 servlet 中生成 HTML 响应。

我搜索了很多,得到:

public class HelloWorldServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hola</title>");
out.println("</head>");
out.println("<body bgcolor=\"white\">");
out.println("</body>");
out.println("</html>");
}
}

我需要使用的工具:

  1. maven 创建项目

  2. 融合 ESB karaf 作为 OSGi 容器

问题是我不知道如何使用 Maven 来创建和实现这样的 Web 服务,例如:

  • 如何指定webapp/web.xml

  • 如何指定pom.xml:依赖、包类型、插件

  • 如何注册服务:实现BundlActivator或配置Spring xml文件

谁能帮我解决这个问题?有新手的详细教程吗?

最佳答案

如果您使用 bndtools,请创建一个声明式服务项目并将此注释添加到您的 servlet:

 @Component(provide = Servlet.class, properties = {"alias=/hello"})
public class HelloWorldServlet extends HttpServlet { ... }

然后使用“带有 Web 控制台和 Gogo 的 Apache Felix 4”创建一个 bnd 运行描述符,只需添加 Apache Felix Http 白板包就可以了。您可以在 http://localhost:8080/hello

找到您的 servlet

它是如何工作的。 @Component 批注使您的类成为一项服务(在本例中由于提供属性而成为 Servlet 服务)。这是使用服务属性“别名”注册的。 Apache Felix Http Whiteboard 包选择这些服务并将它们注册为 servlet。我认为没有比这更简单的了。

关于java - 如何在 OSGi 中使用 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16313650/

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