- 浏览: 1149110 次
- 性别:
- 来自: 火星郊区
博客专栏
-
OSGi
浏览量:0
文章分类
- 全部博客 (695)
- 项目管理 (48)
- OSGi (122)
- java (79)
- Vaadin (5)
- RAP (47)
- mysql (40)
- Maven (22)
- SVN (8)
- 孔雀鱼 (10)
- hibernate (9)
- spring (10)
- css (3)
- 年审 (6)
- ant (1)
- jdbc (3)
- FusionCharts (2)
- struts (4)
- 决策分析 (2)
- 生活 (10)
- 架构设计 (5)
- 破解 (2)
- 狼文化 (4)
- JVM (14)
- J2EE (1)
- 应用服务器 (1)
- 我的链接 (5)
- 数学 (2)
- 报表 (1)
- 百科 (6)
- Flex (7)
- log4j (2)
- PHP (1)
- 系统 (2)
- Web前端 (7)
- linux (6)
- Office (1)
- 安全管理 (5)
- python (2)
- dom4j (1)
- 工作流 (3)
- 养生保健 (4)
- Eclipse (8)
- 监控开发 (1)
- 设计 (3)
- CAS (1)
- ZK (41)
- BluePrint (3)
- 工具 (1)
- SWT (7)
- google (2)
- NIO (1)
- 企业文化 (2)
- Windoes (0)
- RCP (7)
- JavaScript (10)
- UML (1)
- 产品经理 (2)
- Velocity (10)
- C (1)
- 单元测试 (1)
- 设计模式 (2)
- 系统分析师 (2)
- 架构 (4)
- 面试 (2)
- 代码走查 (1)
- MongoDB (1)
- 企业流程优化 (1)
- 模式 (1)
- EJB (1)
- Jetty (1)
- Git (13)
- IPV6 (1)
- JQuery (8)
- SSH (1)
- mybatis (10)
- SiteMesh (2)
- JSTL (1)
- veloctiy (1)
- Spring MVC (1)
- struts2 (3)
- Servlet (1)
- 权限管理 (1)
- Java Mina (1)
- java 系统信息 (6)
- OSGi 基础 (3)
- html (1)
- spring--security (6)
- HTML5 (1)
- java爬虫搜索 (1)
- mvc (3)
最新评论
-
Tom.X:
http://osgia.com/
将web容器置于OSGi框架下进行web应用的开发 -
chenyuguxing:
你好, 为什么我的bundle export到felix工程中 ...
在Apache Felix中运行bundle -
string2020:
<niceManifest>true</ni ...
Bundle Plugin for Maven -
jsonmong:
OSGI,是未来的主流,目前已相当成熟。应用OSGI比较好的, ...
基于OSGi的声明式服务 -
zyhui98:
貌似是翻译过来的,有很少人在linux上做开发吧
如何成为“10倍效率”开发者
原文地址:http://www.eclipse.org/equinox-portal/tutorials/server-side/
自己随便翻译一下主要为了练练英语,如果不对的欢迎指正。
使用eclipse equinox建立服务器端应用相对比较容易,建立一个非常简单的基于java servlets的应用是认识equinox建立服务端应用潜力的第一步。这个一步步建立服务端应用的向导,仅仅是使用equinox一种建立服务端应用的一个使用java servlets的一个例子。
Bundle or Plug-in?
从技术上讲,bundle 和 plug-in 是相同的。bundle 是一系列有逻辑关系的代码、图片、配置、等资料的集合。bundles 包含 metadata(在MANIFEST.MF文件中建立,提供了名称、建立者、版本基础信息)和bundle之间交互的信息。例如manifest 列出了bundle 间的互相依赖以及需要暴露的服务。
plugin-in 更趋向于在eclipse中使用,也就是说,plug-ins 是扩展eclipse 框架的bundle.
步骤
1.为RCP/plug-in 开发安装配置eclipse。
2.建立新的 plug-in 项目
3. 配置 plug-in 项目依赖。
4.建立一个servlet 作为扩展。
5.建立配置,运行测试servlet.
视频向导
为RCP/plug-in 开发安装配置eclipse。
Ganymede M5 或者之后的版本都可以运行本实例,你可以下载 EPP Ganymede Milestone Package Builds page.
帮助信息在 Eclipse for RCP/Plug-in Developers page.
运行eclipse,建立一个新的plug-in 项目(File > New > Project > Plug-in Project).
如下的向导页面,输入项目名称"org.eclipse.examples.servlet","Target Platform"选eclipse3.4.
第二页不要选择plugin-in options ,避免我们后面配置一些不需要的示例。
太多依赖
打开一些选项可能增加一些项目不需要的依赖,一般来说,我们应该让plug-in项目保持尽可能少的依赖关系。运行时,equinox会为你的bundle解决依赖关系。
最糟糕的情况是,你的部属可能没有包含必须的依赖,如果equinox无法处理,将不能转载你的bundle.?????
新项目建立后,在Manifest 编辑器里,打开"Dependencies"页面,加入org.eclipse.equinox.http.registry和
javax.servlet
保存配置
依赖图
进入"Extensions"页面增加扩展org.eclipse.equinox.http.registry.servlets.(但是在我的galieo版本不是如下显示,建议直接编辑plugin.xml文件)
在"Extension Details" area,填入类名org.eclipse.examples.servlets.HelloServlet和你访问servlet的别名; 例如 "http://localhost/hello", 我们使用的别名"/hello"
- <plugin>
- <extension point="org.eclipse.equinox.http.registry.servlets">
- <servlet
- alias="/login"
- class="org.eclipse.examples.servlets.HelloServlet"/>
- </extension>
- </plugin>
<plugin> <extension point="org.eclipse.equinox.http.registry.servlets"> <servlet alias="/login" class="org.eclipse.examples.servlets.HelloServlet"/> </extension> </plugin>
什么是Extension
扩展是一种机制,bundle开发者可以用来hook into eclipse框架,org.eclipse.equinox.http.registry提供
org.eclipse.equinox.http.registry.servlets
扩展点,提供了一个hook可以让开发者添加sevlet到框架。
各种bundle提供了各种各样的扩展点,例如你可以建立扩展添加自己的视图,编辑器,菜单等到eclipse.
建立一个class,取名HelloServlet,继承从javax.servlet.http.HttpServlet
override doGet方法,代码如下:
下面我们来运行它,你可以右键项目 "Run As... > OSGi Framework",当你运行你的bundle时,默认的机制会加载很多不需要的bundle。
当你在eclipse里运行程序时,经常需要配置launch configuration ,很多时候eclipse是自动配置的,所以很多人不一定用到。
建立一个launch configuration是比较容易的,点击‘Run--Configurations’
在Run Configurations对话框,如图配置,确定选中的bundle:org.eclipse.examples.servlet,
org.eclipse.equinox.http.jetty,然后点击“
Add Required Bundles”添加传递的依赖。然后按'Run'
如果你是linux下开发,可能会有权限限制你使用1024以下的端口,这里默认为80,所以你可以修改端口。
如果没有log诊断问题是个很大的挑战,当你运行一个equinox应用,log文件存放在 [workspace]/.metadata/.plugins/org.eclipse.pde.core/Equinox Servlet 目录,你也可以在你的launch configration的 "Program Arguments" 添加-consoleLog 参数,在控制台打出log.
org.mortbay.util.MultiException[java.net.BindException: Permission denied] 输出的日志表明了http server 没有权限绑定需要的端口。
端口设置方法如图:
-Dorg.eclipse.equinox.http.jetty.http.port=8080
开始运行后,你可以访问servlet,"http://localhost:8080/hello".
你可能会看到日志org.mortbay.util.MultiException[java.net.BindException: Address already in use],表明你的端口被占用了,你需要换一个。
运行和测试Servlet
建立servlet 作为项目扩展
为plug-in项目配置依赖
建议新的plug-in project
发表评论
-
关于Felix Log Service
2012-12-07 16:44 1567OSGi服务纲要规范中定义了服务于OSGi平台的通用日志服 ... -
Maven 3 Felix 4 Eclipse 的搭建与部署(部分转载自别人文章)
2012-10-18 10:24 20324.1.开发环境搭建 4.2开发工具 Maven 3 F ... -
【绝对路径】OSGi环境中获取Plugin/Bundle中文件资源的绝对路径
2012-10-08 10:53 2492摘要:在进行Eclipse RCP开发的过程中,需要使用一 ... -
OpenCore:基于OSGi开发纯插件体系结构的WEB应用程序
2012-09-21 17:46 1423随着OSGi/Equinox逐渐成为Java EE服务端的基础 ... -
OSGi技术在Java Web开发中的应用
2012-09-20 11:26 1411随着 Java SE 对模块化功能原生支持的一再推迟(据最 ... -
OSGI典型的应用案例
2012-09-20 11:26 1634OSGI典型的应用案例主要有两个:分别是Eclipse和BMW ... -
OSGi特点
2012-09-20 11:26 12491、JRE版本无关性。虽然Java一直被人们认为是“Write ... -
OSGI与JMX 的关系
2012-09-19 17:09 1058不过重点是: JMX 本来设计的用途就只为了管理,我们不 ... -
在equinox环境开发web应用的"利器" -- registerResources()方法 详解
2012-09-19 17:07 1227registerResources()方法详解 1、简介 ... -
在equinox环境开发web应用的"利器" -- 序
2012-09-19 17:05 1362在equinox环境中开发web应用必须要借助一些工具包提供的 ... -
equinox环境下web应用资源的部署
2012-09-19 17:04 1307osgi的equinox实现环境下,web服务器和web应用都 ... -
OSGi产生的背景--在繁荣的混乱之中走出困惑
2012-09-19 16:58 1165软件的复杂性正在以惊 ... -
将web容器置于OSGi框架下进行web应用的开发
2012-09-16 14:26 3539将web容器置于OSGi框架下,其实就是将web容器做成OSG ... -
在Eclipse中开发OSGi Bundle
2012-09-16 14:26 1330Eclipse为开发OSGI Bundle提供了良好的支持,它 ... -
【第一代服务注册形式】 - 将一个Bundle注册为服务
2012-09-14 10:09 11551、创建业务接口类及其实现类 Java代码 ... -
Declarative Services规范简介及应用
2012-09-14 10:08 1421Declarative Services 是一 ... -
用FileInstall管理Bundle的动态安装、启动、卸载
2012-09-14 10:07 13321、文件目录如下: F:\study_osgi ... -
服务工厂 - Bundle消费者返回不同的服务对象
2012-09-14 10:03 1207一般情况下,服务对象在注册后,任何其它的Bundle在请求 ... -
服务跟踪(ServiceTracker)
2012-09-14 09:58 1159当多个Bundle使用同一 ... -
OSGi容器中Bundle之间Synchronous Communication
2012-09-11 17:07 1560OSGi Core定义了一个服务层,提供了一个Bundl ...
相关推荐
Equinox是Eclipse组织提供的一个OSGi框架的实现,它支持Eclipse平台的插件机制,使得Eclipse可以作为一个动态的模块化应用程序运行。 标签“OSGi Equinox Modular Java”强调了三个核心概念:OSGi,Equinox以及模块...
总结来说,使用Equinox开发OSGi应用程序涉及到理解OSGi核心概念,创建和配置bundle,使用服务,以及构建模块化应用架构。通过Eclipse和Equinox,开发者可以获得强大的工具支持,简化开发流程,实现高度可扩展和动态...
OSGi(Open Service Gateway Initiative)是一个定义了Java应用程序如何组织和模块化以及如何动态发现、启动、停止、更新这些模块化组件的规范。Equinox是OSGi规范的一个实现,它是由Eclipse基金会开发的。本文将...
**使用Equinox开发OSGI应用程序工程及源码详解** OSGi(Open Service Gateway Initiative)是一种模块化系统和Java服务框架,它允许在运行时动态发现、安装、卸载和更新软件模块。Equinox是Eclipse基金会提供的一个...
本文将介绍 Equinox 的 ServletBridge 项目,提供一个示例来说明如何使用 ServletBridge,并将简要分析 它的实现方法。 读者将首先了解到如何在 Servlet Container 中嵌入 OSGI,并从文章提供的例子中了了解其工作...
在本篇博文中,我们将探讨如何使用Equinox作为框架来开发OSGi应用程序。Equinox是Eclipse项目的一个组件,它提供了OSGi规范的实现,使我们能够构建模块化、可扩展且灵活的Java应用程序。OSGi(Open Service Gateway ...
下面将详细介绍如何使用Equinox框架开发一个简单的OSGi应用程序——Hello World示例。 ##### 准备工作 1. 下载并安装Eclipse 3.x版本。推荐使用Eclipse 3.3.2或更高版本,因为它全面支持OSGi R4规范。 2. 解压...
这篇博文将深入探讨如何使用Eclipse IDE和Equinox框架来开发OSGi Bundle应用。 **OSGi基本概念** 1. **Bundle**:OSGi的核心单元,类似于Java的JAR文件,但包含了额外的元数据,描述了其依赖和其他模块的关系。 2....
OSGi(Open Services Gateway Initiative)是一种开放标准,用于创建模块化Java应用程序。它提供了一种动态的模块系统,使得开发者可以构建可升级、可维护且模块化的应用。Equinox是OSGi规范的一个实现,由Eclipse...
通过以上介绍可以看出,《深入理解OSGi:Equinox原理、应用与最佳实践》这本书不仅涵盖了OSGi的基本概念和技术细节,还深入探讨了如何利用这些技术来解决实际问题,是一本非常有价值的参考书籍。无论是对于希望了解...
Equinox OSGi是IBM公司开发的一个开源OSGi实现,它是Eclipse项目的一部分,用于创建模块化、可扩展且轻量级的应用程序。OSGi(Open Service Gateway Initiative)是一种Java平台的标准,它允许开发者将应用程序分解...
OSGi(Open Services Gateway Initiative)是一种开放标准,...无论是在桌面应用、服务器端应用还是嵌入式系统中,OSGi都能带来显著的优势。因此,深入研究OSGi和Equinox对于任何Java开发者来说都是一项有价值的投资。
使用这些jar包,开发者可以设置一个支持OSGi和Spring DM的环境,从而在其中开发和部署模块化的Java应用程序。 在实际应用中,开发者需要了解如何配置Equinox容器,创建符合OSGi规范的bundle,编写服务和消费者,...
Equinox是IBM贡献给Eclipse基金会的一个OSGi实现,它是Eclipse IDE的基础,使得开发者可以构建、管理和运行基于OSGi的Java应用。 在"OSGi与Equinox 创建高度模块化的Java系统 第4章完整源码"中,我们可以学习到以下...
总之,Equinox和OSGi提供了一个强大而灵活的模块化平台,使得开发者能够构建出可扩展、可维护的Java应用程序。通过遵循其编程模型和最佳实践,可以充分利用模块化的优势,实现软件的高效开发和部署。
第三部分基于Equinox的OSGi应用与实践,详细介绍了OSGi的服务纲要规范(OSGi ServiceCompendium)和OSGi企业级规范(OSGi ServiceEnterpress)中最常用的几个子规范内容,在这一部分里,将会把OSGi技术从理论落地到...
本书《深入理解OSGi:Equinox原理、应用与最佳实践》深入剖析了OSGi技术的原理和应用,着重介绍了基于OSGi R5.0规范的内容,并结合了Equinox框架的实践经验,旨在帮助读者更好地理解和应用OSGi技术。 本书共分为四...
通过这个例子,学习者可以了解OSGi Bundle的结构,如何在EQUINOX上部署和管理它们,以及如何使用Eclipse作为开发工具来创建和调试OSGi应用。这涉及到理解Bundle的生命周期、MANIFEST.MF文件的编写、Eclipse插件的...