0

在将 Camel 路由部署到 FuseESB 时,当 FuseESB 尝试启动 jar 文件时,它会在日志中给出以下异常:

Found initial references null for OSGi service (&(language=js)
(objectClass=org.apache.camel.spi.LanguageResolver))

这会导致捆绑包进入几分钟的宽限期,之后它会超时并且其状态会变为失败。请注意,我没有在应用程序中使用 javascript,但我假设它是作为加载 Camel 核心的一部分加载的。

我的设置的详细信息:

  • 有问题的代码是使用 OSGi 蓝图 xml 文件编写的以定义 bean。
  • 代码被打包为一个 jar,而不是 OSGi 包。
  • 代码通过拖放到部署目录中进行部署,因此它由 FAB 部署程序部署。

我相信我已经安装了相关的 Camel 功能。

特征输出:列表:

[installed  ] [2.10.0.fuse-71-047] camel-script-javascript camel-2.10.0.fuse-71-047
[installed  ] [2.10.0.fuse-71-047] camel-script            camel-2.10.0.fuse-71-047 
4

2 回答 2

0

使用 FAB,您应该在 pom.xml 文件中声明对 Camel 组件的依赖关系,并使用 scope=provided。

在以下位置查看更多详细信息:http: //fuse.fusesource.org/bundle/overview.html

于 2013-02-18T11:37:32.923 回答
0

我通过以下方式解决了这个问题:

  • 恢复到 spring xml 文件来定义 bean
  • 将代码打包成一个包,而不是一个 jar

我仍然不明白为什么蓝图版本不起作用,但问题现在不像以前那么紧迫了。

于 2013-02-18T09:33:09.573 回答