关于OSGi Opendoc附带的EventAdmin代码错误的纠正

由于当时匆忙的发布,没有进行仔细的校对,发布的EventAdmin部分的代码中缺少了使用DS实现的示例,但同时在其中又提供了OSGI-INF/component.xml,导致了如果大家直接使用该Component.xml切换为使用DS来实现EventHandler的时候会出现运行时没反应的现象,这里的错误在于component.xml中的
<property name="event.topics" value="/*"/>
EventAdmin在通知Event时是根据注册为EventHandler服务的属性来通知的,而这个属性类型要求的为String[]型的,但采用上面的描述方法的话,就把event.topics的属性注册为了String类型,所以发布Event后EventAdmin是无法通知到这个EventHandler的,在DS中,要将注册的属性换成String[]型,非常的简单,就把上面一句改为:
<property name="event.topics">
   org/riawork/EQUINOXEVENT
</property>
如需要捕捉多个事件,则可以写为:
<property name="event.topics">
   org/riawork/EQUINOXEVENT
   org/riawork/OSGIEVENT
</property>
同样,这里也是支持通配符的,也就是可以这么写
<property name="event.topics">
   org/riawork/*
</property>

修正后的EventHandler project采用了DS的方式实现,重新打包到了OSGi_Opendoc.rar中,如需要的同学请重新下载。

ps: 多谢Jim@QAD,才发现了这个错误....:)

posted on 2007-04-04 15:55 BlueDavy 阅读(2928) 评论(15)  编辑  收藏 所属分类: OSGi、SOA、SCA

评论

# re: 关于OSGi Opendoc附带的EventAdmin代码错误的纠正 2007-04-04 17:24 sbdwhj

Jim@QAD
牛人啊  回复  更多评论   

# re: 关于OSGi Opendoc附带的EventAdmin代码错误的纠正 2007-04-11 16:55 笨人

都很牛!  回复  更多评论   

# re: 关于OSGi Opendoc附带的EventAdmin代码错误的纠正 2007-04-25 13:09 张波

请教一哈我按照OSGI实战DS发布的方式发布但注入近来的validate却是空的?
MANIFEST.MF:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: UserValidateWebBundle Plug-in
Bundle-SymbolicName: UserValidateWebBundleDS
Bundle-Version: 1.0.0
Bundle-ClassPath: bin/
Service-Component: OSGI-INF/component.xml
Bundle-Vendor: 张波
Bundle-Localization: plugin
Import-Package: com.osgi.user,
org.osgi.framework;version="1.3.0"
Require-Bundle: org.eclipse.equinox.servlet.api,
org.eclipse.equinox.http,
org.eclipse.osgi.services

component.xml:
<?xml version="1.0" encoding="UTF-8"?>
<component name="LoginServlet">
<implementation class="com.osgi.web.LoginServlet"/>
<reference name="UserValidateBundleDS" interface="com.osgi.user.Validate" bind="setValidate" unbind="unsetValidate" policy="dynamic" cardinality="0..1"/>
<reference name="HttpService" interface="org.osgi.service.http.HttpService" bind="setHttpService" unbind="unsetHttpService" policy="dynamic"/>
</component>
我在DS启动时的启动级别已经设置为1了但还是不行?请帮忙指点哈谢谢了
  回复  更多评论   

# re: 关于OSGi Opendoc附带的EventAdmin代码错误的纠正 2007-04-25 13:11 张波

id State Bundle
0 ACTIVE system.bundle_3.2.0.v20060601
1 ACTIVE DBValidateBundleDS_1.0.0
2 ACTIVE LDAPValidateBundleDS_1.0.0
4 ACTIVE UserValidateWebBundleDS_1.0.0
5 ACTIVE org.eclipse.equinox.ds_1.0.0.v20060601a
6 ACTIVE org.eclipse.equinox.http_1.0.2.R32x_v20061218
7 ACTIVE org.eclipse.equinox.servlet.api_1.0.0.200605182220
8 ACTIVE org.eclipse.osgi.services_3.1.100.v20060601
10 ACTIVE UserValidateBundleDS_1.0.0  回复  更多评论   

# re: 关于OSGi Opendoc附带的EventAdmin代码错误的纠正 2007-04-25 13:43 BlueDavy

@张波
把equinox log实现的bundle加进来,然后在console输入log,看看是不是有什么错误..  回复  更多评论   

# re: 关于OSGi Opendoc附带的EventAdmin代码错误的纠正[未登录] 2007-05-10 11:09 Keer

BlueDavy,你好!我是新手,刚接触OSGI,然后下载到了你的那个OSGI实战文档,可惜的是未能得到里面的代码,冒昧的请求一下,你能发份里面的样例code给我吗?谢谢!我的email是:wang_ke@126.com。感谢……! 感谢……!感谢……!  回复  更多评论   

# re: 关于OSGi Opendoc附带的EventAdmin代码错误的纠正 2007-05-10 14:04 BlueDavy

@Keer
在rar中已经包含了代码的...
  回复  更多评论   

# re: 关于OSGi Opendoc附带的EventAdmin代码错误的纠正[未登录] 2007-05-11 15:45 Keer

@BlueDavy


呵呵,发现了。。。 谢谢! BlueDavy, 您熟悉CNF(Common Navigator Framework)吗? 熟悉的话给点这方面的指导啊!期待……  回复  更多评论   

# re: 关于OSGi Opendoc附带的EventAdmin代码错误的纠正[未登录] 2007-05-11 16:11 Keer

BlueDavy,你好,我把您的代码弄来试了一下,在按照《OSGI实战》中步骤全部弄好以后,然后我在web browser中敲http://localhost:8080/demo/page/login.htm的时候,页面上仍然是没有任何东西啊? 页面上显示:The page can not be displayed. 请不吝赐教!谢谢!  回复  更多评论   

# re: 关于OSGi Opendoc附带的EventAdmin代码错误的纠正 2007-07-02 17:36 hata

我按照<实战>写的例子也运行不鸟,不知道是没有web容器还是怎么回事.

MSN:hatalf@hotmail.com 正在用OSGI 高手请指导  回复  更多评论   

# re: 关于OSGi Opendoc附带的EventAdmin代码错误的纠正 2007-08-29 16:52 giggs

最近天天混这里
学习前辈们的成果  回复  更多评论   

# re: 关于OSGi Opendoc附带的EventAdmin代码错误的纠正 2008-01-17 15:30 李建敏

在运行时找不服eventAdmin服务是怎么回事啊?  回复  更多评论   

# re: 关于OSGi Opendoc附带的EventAdmin代码错误的纠正 2008-01-17 22:37 BlueDavy

@李建敏
请确认安装了EventAdmin的Bundle。
  回复  更多评论   

# re: 关于OSGi Opendoc附带的EventAdmin代码错误的纠正 2008-08-14 09:56 xfzhu

怎么装EventAdmin的bundle?我每次get下来都是null  回复  更多评论   

# re: 关于OSGi Opendoc附带的EventAdmin代码错误的纠正 2008-12-25 21:38 刘旭林

@Keer
一个是要确定端口号是不是8080,还有就是Import-Package:里面是不是导入了 org.osgi.framework;version="1.3.0",
org.osgi.service.http;version="1.2.0"
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

公告

 









feedsky
抓虾
google reader
鲜果

导航

<2007年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

统计

随笔分类

随笔档案

文章档案

Blogger's

搜索

最新评论

阅读排行榜

评论排行榜