设为首页 收藏本站
查看: 1011|回复: 0

[经验分享] OSGI开发的一点心得

[复制链接]

尚未签到

发表于 2017-2-28 08:13:41 | 显示全部楼层 |阅读模式
  最近用OSGI+嵌入jetty做了一个IDE的后台管理,OSGI真是个好东西,即插即用。
  现总结一下初学时候遇到的问题。
  1、启动WEB服务
  需要加载6个插件(org.eclipse.osgi是默认一定要加载的插件,不计入其中):
  javax.servlet
  org.apache.commons.logging
  org.eclipse.equinox.http
  org.eclipse.equinox.http.servlet
  org.eclipse.osgi.services
  org.mortbay.jetty
  2、导出\配置\启动OSGI遇到的问题:
  如何导出OSGI?
  首先是打包,可以自己手动来,找到OSGI需要的全部插件,然后打包,也可以选择maven2等插件来帮助打包并解决依赖性问题,目前为了保持干净的工作空间,我没有安装任何其他的插件,但又有数百个插件是要打包的,这种情况下,推荐如下方式:
  a、新建一个target difinition项目,该项目用来保存各种版本的压缩文件
  b、在该项目下新建一个.target文件,该target使用方式是一目了然的,Eclipse提供了target editor。
DSC0000.jpg

  在这里选择引用文件夹,target编辑器将会从这些位置搜索插件,注意,它并不真正的产生效果,仅仅只是为了后面查找插件依赖服务的,相当于添加索引。
DSC0001.jpg

  在这个位置添加你要启动的插件,依赖性通过右边的“Add Required”自动完成。注意:该editor的功能并不完善,它只是原样的导出你的选择,所以如果是你自己写的插件,请之后再手动export,不然只有src没有bin,当然你可以通过配置build选项,给bin文件夹打钩来解决(我的下步工作会是写个新的构建器,使之能给自定义插件打jar包),然后,add required也会导入很多多余的插件,如ui包等。
  然后选择导出,即可。
DSC0002.jpg

  如何配置OSGI?
  你需要一个start.bat,内容参考插件configuration的argument
  如
  java -jar -Dorg.osgi.service.http.port=10000 equinox.jar -console 10000为指定的端口。 equinox.jar是启动的jar包,equinox是eclipse基于OSGI框架的产品。该jar包可以在eclipse的plugins目录找到。复制,放在根目录下。创建一个configuration文件夹,里面有config.ini配置文件。内容如下: #This configuration file was written by: #org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser
#Thu Dec 22 15:48:36 CST 2011
#org.eclipse.update.reconcile=false
#osgi.instance.area.default=@user.home/workspace
#osgi.framework=plugins/org.eclipse.osgi_3.7.0.v20110613.jar
#equinox.use.ds=true
osgi.noShutdown=true
eclipse.ignoreApp=true
#org.osgi.framework.bootdelegation=*
osgi.bundles=reference\:file\:plugins/javax.servlet_2.5.0.v201103041518.jar@\:start,\
reference\:file\:plugins/org.apache.commons.logging_1.0.4.v201101211617.jar@\:start,\
reference\:file\:plugins/org.eclipse.equinox.http.jetty_2.0.100.v20110502.jar@\:start,\
reference\:file\:plugins/org.eclipse.equinox.http.servlet_1.1.200.v20110502.jar@\:start,\
reference\:file\:plugins/org.mortbay.jetty.util_6.1.23.v201012071420.jar@\:start,\
reference\:file\:plugins/org.mortbay.jetty.server_6.1.23.v201012071420.jar@\:start,\
reference\:file\:plugins/org.eclipse.osgi.services_3.3.0.v20110513.jar@\:start

osgi.bundles.defaultStartLevel=4嗯,以上属性……参考字面意思。注意插件的加载级别即可。  如何启动OSGI?双击start.bat……
  遇到的ClassNotFoundException问题
  有可能是因为config.ini中的org.osgi.framework.bootdelegation没有配置好
  org.osgi.framework.bootdelegation=* 即可
  当然也可以指定package,用逗号隔开,可以使用通配符

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-348142-1-1.html 上篇帖子: Spring MVC 学习笔记 一 创建项目 下篇帖子: Maven Spring MVC 实践
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表