`
winse
  • 浏览: 94770 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

To embed OSGi in servlet container

阅读更多

环境:

Eclipse Modeling Tools

Version: Indigo Service Release 2

Build id: 20120216-1857

 

操作系统:win7

tomcat: apache-tomcat-7.0.27

 

1、 简单操作(在bridge基础上再添加jar)

主页:

http://eclipse.org/equinox/server/http_in_container.php

http://eclipse.org/equinox/server/downloads/bridge.war

基本操作:

http://developer.51cto.com/art/200910/157948.htm

 

2、 通过eclipse product生成可运行的程序,然后嵌入到tomcat

(这里需要稍稍的了解类的加载。)

demo.zip 在 sample.http 的基础上增加了product打包功能,导入eclipse modeling后,打开/sample.server/server-web.product,点击·Launch an Eclipse application·,然后在浏览器中输入http://localhost/helloworld (启动后jetty默认端口为80)会看到“Hello World -- sample servlet”。

 

嵌入到tomcat,需要对bridge/WEB-INF/eclipse进行修改。

由于tomcat启动是已经加载了servlet-api(即javax.servlet),同时由于使用tomcat取代jetty作为容器。

1、 如果存在引用javax.servlet bundle。获取该插件的源码,分别打开${BUNDLE}/META-INF/MANIFEST.MF。切换到`Dependencies`页签,删除`Required Plug-ins`中javax.servlet,在`Imported Packages`中添加javax.servlet, javax.servlet.http。 

2、 打开server-web.product,导出可运行的程序。

3、 文件处理

删除导出的 product-export/eclipse/plugins/ 下的 jetty.server 和 javax.servlet 的包。

 

同时,bridge/WEB-INF/eclipse/plugins仅保留org.eclipse.equinox.http.servletbridge和org.eclipse.update.configurator。(其他的包在product-export/eclipse/plugins/已经包含了)

 

拷贝 product-export\eclipse 下全部的文件到bridge/WEB-INF/eclipse

4、 配置文件bridge/WEB-INF/eclipse/configuration/config.ini

修改加载与启动的bundle。

打开config.ini, org.eclipse.update.configurator和org.eclipse.equinox.http.servletbridge; 删除 javax.servlet 和 org.mortbay.jetty.server 的加载项。

 

(仅进行了粗略的处理,org.eclipse.equinox.launcher应该也还可以去掉)

 

all-in-one.zip处理了后面的三个步骤,运行deploy.bat,然后把all-in-one/bridge/WEB-INF目录(是整个WEB-INF目录)拷贝到webapps/ROOT/目录下即可。

 


 

 

刚开始遇到同样的问题。在正常启动前,还没有处理掉javax.servlet插件。可能导致加载了不同jar中的的servlet类(javax.servlet bundle与servlet-api jar):

 

 写道
org.osgi.framework.BundleException: The bundle could not be resolved.
Reason: Missing Constraint: Import-Package:
org.eclipse.equinox.servletbridge; version="1.0.0"

 

http://www.eclipse.org/forums/index.php/mv/tree/34715/

 

 

查看的相关文章:

http://eclipse.org/equinox/server/http_in_container.php

http://www.geclipse.eu/fileadmin/Documents/Guides/deployment.pdf

http://eclipse.dzone.com/articles/embedding-osgi-tomcat

http://developer.51cto.com/art/200910/157948.htm

 

http://stackoverflow.com/questions/10252768/to-embed-osgi-in-servlet-container-or-servlet-container-in-osgi

 

http://www.blogjava.net/Phrancol/articles/267508.html

 

 

源码地址:

:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/server-side/bundles/org.eclipse.equinox.http.servletbridge

:pserver:dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/server-side/bundles/org.eclipse.equinox.servletbridge

 

https://github.com/winse/hello/tree/ca902237e03c05f13c7a3cf838de48c825d98dc4

 

  • 大小: 81 KB
分享到:
评论

相关推荐

    OSGi in Action

    HIGHLIGHT OSGi in Action is the definitive guide to OSGi, the hottest technology available for creating modular enterprise Java applications. DESCRIPTION What is OSGi? Simply put, OSGi is a ...

    embed使用,embed播放多媒体

    <embed src="path_to_your_media_file" width="320" height="240"> ``` 这里的`src`属性指定了要加载的媒体文件的URL,`width`和`height`属性定义了媒体的显示尺寸。 ### 二、embed的属性 1. **src**:必需属性,...

    embed标签使用详解

    ### embed标签使用详解 #### 一、概述 `embed`标签是HTML中用于播放多媒体对象的一个重要元素,如Flash、音频、视频等。通过合理的属性配置,开发者可以在网页上实现多媒体内容的有效展示与互动。 #### 二、基本...

    tomcat-embed-core-9.0.16.jar

    tomcat-embed-core-9.0.16.jar

    Java_for_the_Web_with_Servlets

    - **How a Servlet Works**: When a request is sent to a servlet, the servlet container creates a new instance of the servlet if one does not already exist. The `init()` method initializes the servlet, ...

    HTML5 embed 标签使用方法介绍

    要使用`<embed>`标签嵌入内容,必须通过其`src`属性来指定要嵌入的资源的URL地址,而且该URL地址必须包含具体的文件扩展名。这一点在尝试播放MP3音乐文件时尤为重要。例如,如果要嵌入一个MP3文件,`src`属性的值就...

    Servlet 3.0 - Apache Tomcat 7.0.61

    例如,可以使用`Tomcat.embed()`方法在代码中直接启动一个Tomcat实例。 5. 生命周期回调方法:新增了`init()`、`destroy()`等方法的重载版本,可以接受` ServletConfig `或` ServletContext `参数,以便在初始化和...

    servlet-api.jar 3.0版本(tomcat 7.0里的)

    最新的servlet-api.jar,完美结果java代码中注释(@)部分报错的问题

    动态修改Embed的src属性

    在网页开发中,`<embed>` 标签用于嵌入外部资源,如音频、视频、插件等。本文将深入探讨如何动态修改 `<embed>` 元素的 `src` 属性,以及这样做带来的实际效果和应用场景。 动态修改 `src` 属性是网页交互中的常见...

    Embed嵌入图片

    [Embed(source="path/to/resource.png")] public class EmbeddedImage extends BitmapAsset { //... } ``` 这里的`source`属性指定了要嵌入的资源路径,可以是相对路径或绝对路径。`EmbeddedImage`类表示了这个...

    embed embed

    【embed标签】 embed标签是HTML中用于嵌入外部资源的元素,主要应用于网页中插入音频、视频等多媒体内容。由于HTML5的兴起,现在更多使用video和audio标签来处理多媒体,但embed仍然在某些场景下被使用,尤其是在...

    apache-tomcat-9.0.54-embed.zip

    1. **Tomcat Embed Core**: "tomcat-embed-core.jar"是Tomcat的核心组件,提供了Servlet容器的基础功能。它包含了处理HTTP请求、管理Servlet实例、执行生命周期管理和处理会话管理等功能。开发者可以利用这个模块在...

    Go-embed:另一个Golang静态内容嵌入器

    标题“Go-embed:另一个Golang静态内容嵌入器”暗示了`embed`包是Go语言中处理静态内容的一种方法。与其他第三方库相比,`embed`作为内置的解决方案,具有更好的性能和更低的依赖性。 描述“embed: 另一个Golang静态...

    AS3 Embed用法

    ### AS3 Embed 用法详解 #### 一、引言 随着ActionScript 3.0 (简称AS3) 的普及与发展,开发人员越来越多地利用AS3进行Flash项目的开发。在AS3环境中,开发者不再像以前版本那样依赖于Flash IDE中的库来存储图形...

    Refer to embed CRD document elaborating the requirements

    "Word 文档编辑技巧和快捷键总结" 本文档总结了 Word 文档编辑中的一些常用技巧和快捷键,涵盖了文档编辑、表格设置、图片插入、文字排版、格式设置等方面。 一、文档编辑技巧 1. 使用 Ctrl 键快速跳转到指定位置...

Global site tag (gtag.js) - Google Analytics