作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想创建 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>");
}
}
我需要使用的工具:
maven 创建项目
融合 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
它是如何工作的。 @Component 批注使您的类成为一项服务(在本例中由于提供属性而成为 Servlet 服务)。这是使用服务属性“别名”注册的。 Apache Felix Http Whiteboard 包选择这些服务并将它们注册为 servlet。我认为没有比这更简单的了。
关于java - 如何在 OSGi 中使用 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16313650/
我是一名优秀的程序员,十分优秀!