在Activator类中
public void start(BundleContext bundleContext) throws Exception {
bc = bundleContext;
registerResource();
}
private void registerResource() {
//注册servlet
Dictionary<String, String> props = new Hashtable<String, String>();
String url = "/demoservlet";
props.put("alias", url);
props.put("servlet-name", "Servlet_" + url);
HelloWorldServlet servlet = new HelloWorldServlet ();
bc.registerService(Servlet.class.getName(), servlet, props);
//注册资源
try {
serviceReference = bc.getServiceReference(HttpService.class
.getName());
if (serviceReference != null) {
httpService = (HttpService) bc.getService(serviceReference);
httpService.registerResources("/demo", "webroot", null);
}
} catch (Exception e) {
e.printStackTrace();
}
}
相关推荐
在OSGI环境中,我们不再通过web.xml文件来注册Servlet,而是使用OSGI服务的概念。每个Servlet都被视为一个服务,通过服务注册到OSGI框架中。这通常涉及以下步骤: - 创建Servlet类:首先,我们需要创建一个实现了...
标题中的“将OSGi嵌入Servlet容器”是一个关于在Java Web开发中整合OSGi(Open Service Gateway Initiative)框架和Servlet容器的技术主题。OSGi是一种模块化系统,它允许Java应用程序以模块化的方式进行构建,提供...
在程序方式注册中,关键在于获取HttpService服务,并使用它来注册Servlet。通常,这会在插件的激活器(Activator)类中完成,通过跟踪服务来监听HttpService的可用性。一旦获取到HttpService,就可以调用它的`...
总结来说,将Servlet集成到OSGi的Karaf容器中发布REST接口涉及到创建OSGi Bundle、注册Servlet服务、配置Jetty、部署Bundle、设置URL映射等多个环节。这样的模块化方式使得开发、测试和维护更加灵活高效,同时也为...
它们都实现了OSGi服务规范,提供了Servlet 3.0或更高版本的支持,使得可以直接在OSGi Bundle中注册Servlet。 3. **创建OSGi Bundle** 使用Maven或Gradle等构建工具,创建一个新的OSGi Bundle项目。确保在pom.xml或...
OSGi基于服务导向架构,每个模块称为一个Bundle,每个Bundle包含类、资源和元数据,可以看作是一个独立的、自包含的软件单元。这些Bundle之间通过导出和导入包来实现依赖关系,这使得开发者能够在不重启应用的情况下...
在本示例中,我们将探讨如何在OSGi环境下配置Jetty 9.3.10,创建一个注册Servlet的工程,并进行Jetty的性能优化。 首先,我们需要准备OSGi运行时环境。常见的OSGi容器有Apache Felix、Equinox等。这里我们选择一个...
7. **org.eclipse.equinox.http.registry_1.0.1**:用于注册HTTP服务和资源。 8. **org.eclipse.equinox.http.jetty_1.1.0**:主要用于启动Jetty。 9. **javax.servlet_2.4.0**:Servlet规范,确保Servlet的兼容性。...
每个Bundle都是一个独立的Java应用程序单元,有自己的类加载器,可以包含类、资源和元数据。通过这种方式,OSGI允许不同的Bundle之间以安全、隔离的方式进行交互。此外,OSGI还提供了服务注册和发现机制,使得Bundle...
- 安装Eclipse IDE,并安装PDE(Plug-in Development Environment)插件,这将帮助我们创建和管理OSGi Bundle项目。 - 创建一个新的OSGi Bundle项目,并添加必要的依赖库,包括Equinox运行时、Jersey核心库、以及...
2. **HTTP注册表(org.eclipse.equinox.http.registry)**:提供了通过Eclipse扩展注册表注册Servlet、资源和JSP的支持,而不是使用基于代码的OSGI注册机制。 3. **Servlet Bridge(org.eclipse.equinox....
4. **服务发现**:通过OSGi服务注册和查找机制,Web Bundle可以便捷地发现和使用其他服务。 **总结** 基于OSGi的Web Bundle结合了OSGi的模块化优势和Jetty的轻量级特性,为Web应用程序的开发和部署提供了新的解决...
每个Bundle包含代码、资源和元数据,描述其依赖和其他Bundle的关系。 4. **服务注册与发现**:OSGi框架提供了服务注册表,允许Bundle注册自己的服务,并且其他Bundle可以通过服务注册表查找并消费这些服务,实现...
1. **OSGI基础概念**:OSGI的核心是bundle,每个bundle都是一个独立的Java模块,包含类、资源和元数据。它们通过导出和导入包来实现模块间的依赖关系。OSGI框架管理这些bundle的生命周期,包括安装、启动、停止、...
例如,它可以是一个Servlet,通过OSGi服务注册和查找机制与OSGi bundle通信,从而实现Web请求的处理。 4. `com.sample.web.zip`:这个文件可能是另一个OSGi bundle的压缩包,或者是一个未解压的Web应用,需要进一步...
这些应用服务器允许开发者将J2EE组件(如EJB、Servlet等)打包成OSGi bundle,然后在运行时按需加载和卸载。这样,开发者可以快速响应业务需求变化,同时保持系统的稳定和高效。 **实战中的OSGi** "Introduction ...
在Spring OSGi中,每个服务或组件都被封装成一个独立的Bundle,这些Bundle之间通过OSGi服务注册和查找机制实现依赖注入和通信。开发者需要在Sample中定义 Bundle Activator,它是Bundle启动和停止时执行的入口点,...
Liferay基于Java EE标准,如Servlet、JSP和EJB,同时也利用了OSGi框架,如Apache Felix或Equinox,来实现模块化。通过OSGi,开发者可以利用Java的全部能力,同时避免了传统Java应用程序中可能出现的类路径冲突问题,...
- 提供OSGi服务注册,使得Web组件可以在运行时动态部署和更新。 - 兼容JSR-356,提供WebSocket支持。 - 支持JNDI查找,使得应用可以通过JNDI访问资源。 - 集成了Jasper引擎,提供JSP支持。 **2. Maven构建OSGI项目*...