我是servicemix 4.x的新手。我已经尝试过servicemix 4.4和servicemix-fuse 4.4两者都有同样的问题。我试图将样本部署到部署目录,但没有任何反应。 Servicemix运行,我检查日志(tail -f servicemix.log)并且没有关于部署的消息。我试图在4.4下找到一些关于热部署的文档,但我找不到任何东西。 我记得hotdeploy开箱即用的servicemix 3.x,我只是将zips复制到hotdeploy dir。
谢谢,
Hubi
答案 0 :(得分:1)
我相信ServiceMix 4.4将热部署(<servicemix home>/deploy
)两种类型的文件:OSGi包和JBI服务程序集。也就是说,jar文件(和爆炸的jar文件)包含额外的OSGi或JBI元信息,OSGI蓝图xml文件和Spring xml文件,它假设是OSGi。 ServiceMix 4.4不会部署vanilla jar文件,因为它不清楚你希望它如何加载它们 - 你希望它将它包装成OSGi包,猜测导入和导出......
从您的问题中不清楚您遇到问题的样本。快速查看大多数ServiceMix示例似乎大多数是OSGi包(Maven包= =包),这些包都应该在复制到deploy目录时进行热部署。
如果你知道你的jar文件,比如说OSGi包,那么我会检查<servicemix home>/etc/org.apache.felix.fileinstall-deploy.cfg
文件的felix.fileinstall.dir
属性,以确保它被配置为从你想到的目录中选择。我还要检查File Installer和Deployer服务是否已在运行时安装。这些通常在安装的前30个服务中,并且不会显示在osgi:list
上,因此您可以尝试
karaf@root> osgi:ls | grep Deployer
如果您没有看到它们,请检查对etc/startup.properties
文件的修改 - 有人可能已删除这些服务...
希望有所帮助,
斯科特
答案 1 :(得分:1)
我正在使用apache-servicemix-4.4.1-fuse-01-11,而hotdeploy适用于JBI以及基于OSGI的软件包(适用于JBI的zip和适用于OSGI的jar)。 尝试通过在karaf控制台上运行来查找已安装的软件包:
osgi:list | grep 'YourBundleName'
如果一切正常,您可以使用其他两个命令安装和卸载软件包:
osgi:install yourbundlename
osgi:uninstall yourbundlename
安装完套件后,您可以通过发出以下命令查看日志输出(仅根据我所知的Fuse ESB工作):
log:tail