【发布时间】:2018-05-06 08:22:49
【问题描述】:
我的团队继承了一个建立在 Apache Karaf 之上的旧代码库,并且它具有一些 JAX-WS 服务。我们目前遇到的问题是这个对象并不总是被注入到 Bean 中。
我们的服务定义为:
@WebService(serviceName = "XXXSoapService", portName = "XXXSoapPort", endpointInterface = "com.XXX.service.XXXSoapInterface", targetNamespace = "http://xxx.xx/")
@BindingType(value=SOAPBinding.SOAP12HTTP_BINDING)
public class XXXSoapService implements XXXSoapInterface {
@Resource
WebServiceContext context;
public void doXXX() {
context.getMessageContext(); // throws nullpointerexception
}
}
我们已经尝试了几个我们在网上找到的选项。我们尝试了 setter 注入,我们尝试为资源指定名称,并确保设置了 endpointInterface。
但是,无论我们做什么,大多数时候,服务都是在没有注入 WebServiceContext 的情况下实例化的。有时,它会起作用,这让我们相信它可能与 KARAF 的工作方式有关,它会尝试在 WebServiceContext 可用之前注入它。
我们在 org.apache.karaf.features.xml 的 featuresBoot 部分中有 CXF。
我对 OSGI 和 Karaf 的了解非常基础,所以我真的不知道该寻找什么。
有没有人知道为什么 WebServiceContext 大部分时间都没有被注入,但有时却被注入了?
编辑:我一直在阅读它,我在 Apache Blueprint 中遇到的一个例外似乎与它有关:
[Blueprint Extender: 3] ERROR org.apache.aries.blueprint.container.BlueprintContainerImpl - Unable启动捆绑包的蓝图容器 io.hawt.hawtio-karaf-terminal/2.0.0 由于未解决的依赖关系 [(objectClass=org.apache.felix.service.threadio.ThreadIO), (objectClass=org.apache.felix.service.command.CommandProcessor)] java.util.concurrent.TimeoutException 在 org.apache.aries.blueprint.container.BlueprintContainerImpl$1.run(BlueprintContainerImpl.java:371) 在 org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748)
我将研究这个模块的依赖关系,但这可能是原因吗?还有其他想法吗?
【问题讨论】:
标签: osgi jax-ws apache-karaf karaf blueprint-osgi