首页 > 解决方案 > 使用 karaf 4.1.4 在 PAX 考试中面临问题

问题描述

我们最近将生产环境从 Karaf 3 升级到了 Karaf 4.1.4。生产中的一切似乎都很好。但是我们在升级“pax-exam”以使用 Karaf 4.1.4 时遇到了问题。升级后,我们的测试服总是不一致。简而言之,我们无法进行 REST 调用。出现“连接被拒绝”错误。在调试更多时,我们发现端口没有监听,并且我们的应用程序和 Karaf 容器之间没有建立 CONNECTION。由于这个问题,测试套装失败了 10 次中的 6 次。如何解决这种不一致?为什么有时端口没有绑定?

注意:防火墙/安全没有问题

更多详情

卡拉夫版本- 4.1.4

org.ops4j.pax.exam 版本- 4.11.0

码头服务器版本- 9.3.21.v20170918

org.ops4j.pax.web 版本- 6.0.9

org.glassfish.jersey.version - 2.25.1

容器启动后,所有捆绑包都已启动并处于活动状态,并且所有功能都处于 STARTED 状态。然后我们获取自定义端口(可用端口)并更新相应的 osgi 属性。但是更新不成功并出现以下错误。

2018-06-05 13:53:39,065 错误 [Activator.java:380] 无法启动 pax Web 服务器:null - oopwsiActivator java.lang.NullPointerException:在 org.ops4j.pax.web.service.jetty.internal 处为 null。 ServerControllerImpl$Stopped.start(ServerControllerImpl.java:527) 在 org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl.start(ServerControllerImpl.java:81) 在 org.ops4j.pax.web.service.jetty。 internal.ServerControllerFactoryImpl$1.start(ServerControllerFactoryImpl.java:164) at org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl$Unconfigured.configure(ServerControllerImpl.java:787) at org.ops4j.pax.web.service .jetty.internal.ServerControllerImpl.configure(ServerControllerImpl.java:97) 在 org.ops4j.pax.web.service.internal.Activator.updateController(Activator.java:347) 在 org.ops4j.pax。web.service.internal.Activator.lambda$scheduleUpdateConfig$1(Activator.java:287) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask .java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(线程.java:748)在 java.lang.Thread.run(Thread.java:748) 处运行(ThreadPoolExecutor.java:624)在 java.lang.Thread.run(Thread.java:748) 处运行(ThreadPoolExecutor.java:624)

标签: osgiapache-karafpax-exam

解决方案


推荐阅读