我按照下面给出的 Karaf Cellar 示例进行操作, http://blog.nanthrax.net/2011/11/apache-karaf-cellar-and-dosgi/
我创建了 3 个 OSGi 包,即服务 (Bundle1)、服务实现 (Bundle2) 和客户端 (Bundle3)。我有 2 个 karaf 容器在不同的机器上运行,其中(Bundle1)和(Bundle2)部署在一个 karaf 实例上,(Bundle1)和(Bundle3)部署在另一个 karaf 实例上。正如示例中给出的那样,每件事都运行良好。我从 Karaf container2 中删除了客户端捆绑包,并希望通过蓝图中描述的骆驼路由调用服务。
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
<reference id="myService" interface="org.service.cellar.EchoService" timeout="20000" availability="optional" />
<camelContext id="camel" trace="false"
xmlns="http://camel.apache.org/schema/blueprint">
<route id="client">
<from uri="timer://foo?fixedRate=true&period=10000" />
<bean ref="myService" method="process" />
<log message=" Invoking Service : ${body}" />
</route>
</camelContext>
</blueprint>
在 karaf container2 中部署上述蓝图后,我在 karaf 容器 1 中看到以下异常。我无法找出此错误的来源。对此问题的任何评论表示赞赏。
谢谢你。
2012-10-15 13:24:40,477 | 错误 | 池 11 线程 7 | 事件调度任务 | 78 - org.apache.karaf.cellar.core - 2.2.4 | 分派任务时出错 java.lang.NullPointerException 在 org.apache.karaf.cellar.dosgi.RemoteServiceCallHandler.handle(RemoteServiceCallHandler.java:74)[83:org.apache.karaf.cellar.dosgi:2.2.4] 在 org.apache.karaf.cellar.dosgi.RemoteServiceCallHandler.handle(RemoteServiceCallHandler.java:34)[83:org.apache.karaf.cellar.dosgi:2.2.4] 在 sun.reflect.GeneratedMethodAccessor31.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_35] 在 java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_35] 在 org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:50)[7:org.apache.aries.proxy:0.3.1] 在 org.apache.aries.proxy.impl.DefaultWrapper.invoke(DefaultWrapper.java:31)[7:org.apache.aries.proxy:0.3.1] 在 org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:78)[7:org.apache.aries.proxy:0.3.1] 在 $Proxy24.handle(未知来源)[78:org.apache.karaf.cellar.core:2.2.4] 在 org.apache.karaf.cellar.core.event.EventDispatchTask.run(EventDispatchTask.java:77)[78:org.apache.karaf.cellar.core:2.2.4] 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_35] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_35] 在 java.lang.Thread.run(Thread.java:662)[:1.6.0_35]