OSGI web 开发
2016-07-04 17:46
393 查看
最近在研究OSGI框架,想将服务发布成网路api,目前大概有4中osgi框架,本文用到的是Eclipse自带的equinox。简单实现一个osgi的web,关键参考网上的一路配置下来遇到了不少问题和错误。现在解决了,并且测试成功了,就想说一下,有想学习osgi的同学也能参考参考。
首先我的eclipse版本是4.4.2 LUNA
然后右键new 一个project 选择 Plug-in-project
填写项目名:org.osgi.test ,点击下一步,可以看到一些属性的设置可以为默认的,也可以自定义。本人都是默认的。
一路next下来:
ok,到处项目创建完毕,项目的工程图:
接下来:右键项目run as 选择 run configurations
点击OSGI Framework下的Equniox 如果没有则右键new一个。
选择自己刚刚新建的bundle在下面的Target platfoem勾选 org.eclipse.equinox.console org.apache.felix.gogo.command org.apache.felix.gogo.shell org.apache.felix.gogo.runtime org.eclipse.osgi
然后点击 Run按钮在控制台看到:
则bundle启动成功。
接下来进行web配置。
在src下新建一个folder为webroot(习惯,可以随便设置)在下面新建一个html为test.html
接下来,双击打开MANIFEST.MF文件点击Dependeceis 分别在左右添加bundle和引入包如图所示:
点击 Runtime 添加bin 如图所示:
最后的配置为:
接下来打开自动生成的类修改里面的代码:
接下里再一次打开运行配置:
添加bundle依赖,这一次添加的比较多:
org.eclipse.osgi_3.10.2.v20150203-1939
javax.servlet_3.0.0.v201112011016
org.eclipse.equinox.http.jetty_3.0.200.v20131021-1843
org.eclipse.equinox.http.registry_1.1.300.v20130402-1529
org.eclipse.equinox.http.servlet_1.1.500.v20140318-1755
org.eclipse.osgi.services_3.4.0.v20140312-2051
org.eclipse.equinox.console_1.1.0.v20140131-1639
org.apache.felix.gogo.command_0.10.0.v201209301215
org.apache.felix.gogo.shell_0.10.0.v201212101605
org.apache.felix.gogo.runtime_0.10.0.v201209301036
org.eclipse.jetty.http_8.1.16.v20140903
org.eclipse.jetty.io_8.1.16.v20140903
org.eclipse.jetty.util_8.1.16.v20140903
org.eclipse.jetty.server_8.1.16.v20140903
org.eclipse.jetty.continuation_8.1.16.v20140903
org.eclipse.jetty.servlet_8.1.16.v20140903
org.eclipse.jetty.xml_8.1.3.v20120522
org.eclipse.jetty.security_8.1.16.v20140903
org.eclipse.jetty.webapp_8.1.3.v20120522
org.eclipse.equinox.common_3.6.200.v20130402-1505
org.eclipse.equinox.registry_3.5.400.v20140428-1507
osgi.example.compute_1.0.0.qualifier
如果添加过了就不用再添加了。其实上面的控制态都打印出来。
等等还要配置访问的端口,
ok,现在可以运行了,点击run按钮,然后在浏览器中访问吧:
如果你在代码中写的文件地址是webroot那么访问地址就为:/demo/test.html
总结:遇到错误看错误代码,他会报什么依赖的bundle错误,那我们家把什么bundle加进来。
参考了别人的文档,菜鸟一个。osgi的用途应该在发布服务面向接口的开发,阿里支付宝的sofamvc用的就是OSGI的原理发布服务。sofamvc3之前的都是bundle依赖
sofamvc4以后改成了module.并加入了注解实现发布。结合CE容器开发web系统。
首先我的eclipse版本是4.4.2 LUNA
然后右键new 一个project 选择 Plug-in-project
填写项目名:org.osgi.test ,点击下一步,可以看到一些属性的设置可以为默认的,也可以自定义。本人都是默认的。
一路next下来:
ok,到处项目创建完毕,项目的工程图:
接下来:右键项目run as 选择 run configurations
点击OSGI Framework下的Equniox 如果没有则右键new一个。
选择自己刚刚新建的bundle在下面的Target platfoem勾选 org.eclipse.equinox.console org.apache.felix.gogo.command org.apache.felix.gogo.shell org.apache.felix.gogo.runtime org.eclipse.osgi
然后点击 Run按钮在控制台看到:
则bundle启动成功。
接下来进行web配置。
在src下新建一个folder为webroot(习惯,可以随便设置)在下面新建一个html为test.html
接下来,双击打开MANIFEST.MF文件点击Dependeceis 分别在左右添加bundle和引入包如图所示:
点击 Runtime 添加bin 如图所示:
最后的配置为:
接下来打开自动生成的类修改里面的代码:
接下里再一次打开运行配置:
添加bundle依赖,这一次添加的比较多:
org.eclipse.osgi_3.10.2.v20150203-1939
javax.servlet_3.0.0.v201112011016
org.eclipse.equinox.http.jetty_3.0.200.v20131021-1843
org.eclipse.equinox.http.registry_1.1.300.v20130402-1529
org.eclipse.equinox.http.servlet_1.1.500.v20140318-1755
org.eclipse.osgi.services_3.4.0.v20140312-2051
org.eclipse.equinox.console_1.1.0.v20140131-1639
org.apache.felix.gogo.command_0.10.0.v201209301215
org.apache.felix.gogo.shell_0.10.0.v201212101605
org.apache.felix.gogo.runtime_0.10.0.v201209301036
org.eclipse.jetty.http_8.1.16.v20140903
org.eclipse.jetty.io_8.1.16.v20140903
org.eclipse.jetty.util_8.1.16.v20140903
org.eclipse.jetty.server_8.1.16.v20140903
org.eclipse.jetty.continuation_8.1.16.v20140903
org.eclipse.jetty.servlet_8.1.16.v20140903
org.eclipse.jetty.xml_8.1.3.v20120522
org.eclipse.jetty.security_8.1.16.v20140903
org.eclipse.jetty.webapp_8.1.3.v20120522
org.eclipse.equinox.common_3.6.200.v20130402-1505
org.eclipse.equinox.registry_3.5.400.v20140428-1507
osgi.example.compute_1.0.0.qualifier
如果添加过了就不用再添加了。其实上面的控制态都打印出来。
等等还要配置访问的端口,
ok,现在可以运行了,点击run按钮,然后在浏览器中访问吧:
如果你在代码中写的文件地址是webroot那么访问地址就为:/demo/test.html
总结:遇到错误看错误代码,他会报什么依赖的bundle错误,那我们家把什么bundle加进来。
参考了别人的文档,菜鸟一个。osgi的用途应该在发布服务面向接口的开发,阿里支付宝的sofamvc用的就是OSGI的原理发布服务。sofamvc3之前的都是bundle依赖
sofamvc4以后改成了module.并加入了注解实现发布。结合CE容器开发web系统。
相关文章推荐
- MyEclipse Web Project转Eclipse Dynamic Web Project
- Windows Clang开发环境备忘
- 傻瓜式用Eclipse连接MySQL数据库
- Eclipse引入jquery报错如何解决
- 让Flex Builder 3.0与Eclipse3.4整合起来
- Eclipse配置Javascript开发环境图文教程
- 使用zend studio for eclipse不能激活代码提示功能的解决办法
- 图解Eclipse j2ee开发环境的搭建过程
- 两种Eclipse部署动态web项目方法
- ext for eclipse插件安装方法
- 解决Fedora14下eclipse进行android开发,ibus提示没有输入窗口的方法详解
- eclipse导入jquery包后报错的解决方法
- Eclipse 格式化代码时不换行与自动换行的实现方法
- Eclipse下jQuery文件报错出现错误提示红叉
- eclipse如何忽略js文件报错(附图)
- eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
- jquery库或JS文件在eclipse下报错问题解决方法
- 什么是eclipse,eclipse的意思解析
- Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
- eclipse+myeclipse 环境配置方法