0

我需要一些关于 OSGi Servlets 和 HTML 前端的工作流的澄清。我是一个老派的 HTML 和 Javascript 程序员,对所有这些 OSGi、Ajax 和 JQuery 的东西都是新手。我正在开发自己的 OSGi 服务器实现。我按照本指南使用 eclipse 创建了我的 OSGi 插件:https ://docs.jboss.org/author/display/AS7/Creating+a+new+OSGi+Bundle+using+Eclipse

到目前为止,我的 Servlet 运行良好。它应该处理数据库请求。我用 HTML 和 Javascript(JQuery) 编写了一个网站,我想从该网站向 Servlet 发起 Ajax 请求。

我的问题是,我不知道如何将我的 HTML/Javascript/JQuery 内容集成到 OSGi Servlet 中。我试图将它注册为 Servlet Bundle 中的资源,效果很好,但我不确定这是否是一种非常优雅的方式......它需要在同一个 OSGi 服务器上运行,但它是否需要在同一个作为 Servlet 捆绑还是单独捆绑?

我将在 Eclipse 中为 UI Bundle 创建哪种项目,我将如何导出它?

4

2 回答 2

0

您可能会对 Pax Web 项目感兴趣,无论如何,这里有一个关于如何发布可用资源的示例。这个示例也应该可以工作类似 Apache Felix HTTP 服务的 HTTP 服务,可能需要一些小的调整 :) 。

于 2013-05-23T06:30:00.260 回答
0

您唯一需要做的就是让您的网络资源(html、javascript 和 css 文件)在 url 上可用。您可以使用 Servlet 手动执行此操作。如果您将 Web 资源打包到 bundle 中,您可以从 BundleContext.getBundle() 获取这些资源的 InputStream。

一种更简单的方法是使用 Amdatu ResourceHandler。这是一个所谓的“扩展器”,其唯一目的是使资源包中的资源在 url 上可用。

您需要执行以下操作: 1) 确保您的资源已打包在捆绑包中 2) 将两个额外的标头添加到包含资源 X-Web-Resource-Version: 1.0 X-Web-Resource: 的捆绑包的清单中: path/to/resources 3) 将 Apache Felix Whiteboard 和 Amdatu ResourceHandler 包添加到您的运行时。

可以在 Amdatu 网站上找到文档:http://amdatu.org/components/web.html 滚动到页面底部)。

于 2013-05-22T18:58:14.443 回答