OSGi包未部署在WSO2 esb中

时间:2013-12-10 10:29:31

标签: osgi bundle esb

我在我的机器上安装了WSO2 esb(v 4.6)。 我已经创建了一个示例HelloWorld项目。这个项目有一个接口,一个impl类。它还有一个Activator,它从OSGi框架实现了BundleActivator。 我在这个激活器的start()和stop()方法中输入了一个简单的sysout命令。

然后我修改了我的pom.xml,将包装更改为“bundle”。 还添加了maven-bundle-plugin以及将我的项目打包为OSGi包的所有必要指令。

为了确保我的包已经正确打包,我将它部署在Eclipse提供的Equinox OSGI容器上,并且在bundle的启动/停止时我可以在osgi控制台上看到sysouts。 这有希望证实我的捆绑是正确的。

现在我想在WSO2碳框架上部署此捆绑包。 所以我将我的包(.jar文件)放在“C:\ Program Files \ wso2esb-4.6.0 \ repository \ components \ plugins”路径下,然后使用以下命令启动ESB:

wso2server.bat -DosgiConsole

这给了我osgi>提示。在osgi命令提示符上执行ss时,我确实获得了由WSO2的碳框架启动的bundle列表。但是,我无处可见列表中的我的包。 我还检查了日志文件夹(C:\ Program Files \ wso2esb-4.6.0 \ repository \ log),看看我的BundleActivator的“start”方法是否有任何sysout。但是我找不到此文件夹下的所有日志文件。

我想知道我是否遗漏了任何东西,以便通过WSO2碳框架激活我的捆绑包?

如果有一种方法可以在我的论坛中附上我的论坛,那么请告诉我,以便我可以附上它,这样我就可以知道捆绑包装是否正确。

非常感谢提前和最诚挚的问候 LB


感谢您的回复;确实将捆绑包放在“dropins”文件夹中解决了这个问题。

我的下一步是在管理控制台的“功能”标签下查看此捆绑包。 为此,我理解,捆绑包需要部署在存储库中。

在管理控制台上,我看到两个单选按钮(在Repository Management选项卡下),用于定义存储库uri即“URL”和“Local”。 我首先选择了“本地”无线电选项,并给出了我的文件系统所在文件夹所在文件夹的绝对文件路径。但是它提示无效路径的错误消息。 我现在正计划将此捆绑包放在svn存储库下,然后将提供该路径。 在我这样做之前,我想知道 1)“功能”功能背后的代码逻辑是否寻找特定的目录结构?如果是的话,是否有人请让我知道该结构应该是什么? 2)只需将捆绑包放在特定目录结构(如果有)下的存储库中,就会使捆绑包出现在“功能”链接中(即,从下拉列表中选择已配置的存储库后,单击“查找功能”)按钮)还是需要做更多的基础工作? 我的目标是让我的捆绑包显示为“功能”。

非常感谢所有建议。

最诚挚的问候 LB

3 个答案:

答案 0 :(得分:1)

repository\components\dropins而不是repository \ components \ plugins中部署jar。这是您应该部署自定义捆绑包的地方。

答案 1 :(得分:0)

您必须将jar文件复制到/ repository / components / lib目录并重新启动服务器。重新启动esb后,检查/ repository / components / dropins中的jar以验证ESB是否成功。

最佳做法是,将jar文件复制到/ repository / components / lib并需要重新启动,因为wso2-esb不推荐用于热部署。

答案 2 :(得分:0)

回答关于使您的捆绑包在功能管理用户界面中显示为功能的第二个问题:

首先,您需要创建包含捆绑包的功能。然后,您需要按照以下帖子中给出的步骤操作。 http://blog.kasunbg.org/2013/04/generating-wso2-p2-repo-for-features.html