【发布时间】:2023-03-22 18:20:01
【问题描述】:
我正在使用 Maven(但与 Felix Web 控制台相同的问题)和 maven-sling-plugin 进行部署,我看到它启动了两次:
*INFO* [qtp1462409406-40] logs/access.log 127.0.0.1 - admin 25/Feb/2016:11:18:31 +0100 "POST /dev/system/console/install HTTP/1.1" 200 - "-" "Jakarta Commons-HttpClient/3.1"
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install2994913564032148892.tmp] com.as.test.content BundleEvent INSTALLED
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install2994913564032148892.tmp] com.as.test.content BundleEvent RESOLVED
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install2994913564032148892.tmp] com.as.test.content BundleEvent STARTING
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install2994913564032148892.tmp] com.as.test.content BundleEvent STARTED
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install2994913564032148892.tmp] com.as.test.content Service [com.as.test.jcr.service.NodeFinderImpl,374] ServiceEvent REGISTERED
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install2994913564032148892.tmp] com.as.test.content Service [com.as.test.jcr.service.NodeSorterImpl,375] ServiceEvent REGISTERED
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install2994913564032148892.tmp] com.as.test.content Service [com.as.test.jcr.service.UserProcessorImpl,376] ServiceEvent REGISTERED
====> Starts executing code: creates users, sets permissions and sort nodes with the JCR API
[...]
*ERROR* [pool-7-thread-1] com.as.test.content [com.as.test.jcr.service.ContentInitializerImpl(173)] Failed creating the component instance; see log for reason
*INFO* [FelixFrameworkWiring] com.as.test.content BundleEvent STOPPING
*INFO* [FelixFrameworkWiring] com.as.test.content Service [com.as.test.jcr.service.ContentInitializerImpl,383] ServiceEvent UNREGISTERING
*INFO* [FelixFrameworkWiring] com.as.test.content Service [com.as.test.jcr.service.NodeSorterImpl,375] ServiceEvent UNREGISTERING
*INFO* [FelixFrameworkWiring] com.as.test.content Service [com.as.test.jcr.service.UserProcessorImpl,376] ServiceEvent UNREGISTERING
*INFO* [FelixFrameworkWiring] com.as.test.content Service [com.as.test.jcr.service.NodeFinderImpl,374] ServiceEvent UNREGISTERING
*INFO* [FelixFrameworkWiring] com.as.test.content BundleEvent STOPPED
*INFO* [FelixFrameworkWiring] com.as.test.content BundleEvent UNRESOLVED
*INFO* [FelixFrameworkWiring] com.as.test.content BundleEvent RESOLVED
*INFO* [FelixFrameworkWiring] com.as.test.content BundleEvent STARTING
*INFO* [FelixFrameworkWiring] org.apache.sling.jcr.contentloader.internal.Loader Content of bundle already loaded com.as.test.content.
*INFO* [FelixFrameworkWiring] com.as.test.content BundleEvent STARTED
*INFO* [FelixFrameworkWiring] com.as.test.content Service [com.as.test.jcr.service.NodeFinderImpl,384] ServiceEvent REGISTERED
*INFO* [FelixFrameworkWiring] com.as.test.content Service [com.as.test.jcr.service.NodeSorterImpl,385] ServiceEvent REGISTERED
*INFO* [FelixFrameworkWiring] com.as.test.content Service [com.as.test.jcr.service.ContentInitializerImpl,387] ServiceEvent REGISTERED
*INFO* [FelixFrameworkWiring] com.as.test.jcr.service.ContentInitializerImpl Initializing Sling content
====> Starts (again) executing code: creates users, sets permissions and sort nodes with the JCR API
我在bundle的启动时执行了一些代码,它在中间停止,然后重新启动,我找不到原因。
我尝试过使用 Sling 启动板 7 和 8,分别使用 org.apache.felix.framework 4.4.1 和 5.2.0
编辑:堆栈跟踪
1. Starts from background install
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install3836459285044407564.tmp] com.as.test.Activator java.lang.Thread.getAllStackTraces(Thread.java:1640)
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install3836459285044407564.tmp] com.as.test.Activator com.as.test.Activator.printStrackTraces(Activator.java:33)
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install3836459285044407564.tmp] com.as.test.Activator com.as.test.Activator.start(Activator.java:23)
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install3836459285044407564.tmp] com.as.test.Activator org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install3836459285044407564.tmp] com.as.test.Activator org.apache.felix.framework.Felix.activateBundle(Felix.java:2154)
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install3836459285044407564.tmp] com.as.test.Activator org.apache.felix.framework.Felix.startBundle(Felix.java:2072)
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install3836459285044407564.tmp] com.as.test.Activator org.apache.felix.framework.BundleImpl.start(BundleImpl.java:976)
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install3836459285044407564.tmp] com.as.test.Activator org.apache.felix.framework.BundleImpl.start(BundleImpl.java:963)
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install3836459285044407564.tmp] com.as.test.Activator org.apache.felix.webconsole.internal.core.InstallHelper.doRun(InstallHelper.java:67)
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install3836459285044407564.tmp] com.as.test.Activator org.apache.felix.webconsole.internal.core.BaseUpdateInstallHelper.doRun( BaseUpdateInstallHelper.java:89)
*INFO* [Background Install /var/folders/v0/gh9_k3ld5vx43sn057mg6h3c0000gn/T/install3836459285044407564.tmp] com.as.test.Activator org.apache.felix.webconsole.internal.core.BaseUpdateInstallHelper.run( BaseUpdateInstallHelper.java:121)
2. Stops from FelixFrameworkWiring
*INFO* [FelixFrameworkWiring] com.as.test.Activator THREAD: Thread[FelixFrameworkWiring,5,main]
*INFO* [FelixFrameworkWiring] com.as.test.Activator java.lang.Thread.dumpThreads(Native Method)
*INFO* [FelixFrameworkWiring] com.as.test.Activator java.lang.Thread.getAllStackTraces(Thread.java:1640)
*INFO* [FelixFrameworkWiring] com.as.test.Activator com.as.test.Activator.printStrackTraces(Activator.java:33)
*INFO* [FelixFrameworkWiring] com.as.test.Activator com.as.test.Activator.start(Activator.java:23)
*INFO* [FelixFrameworkWiring] com.as.test.Activator org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
*INFO* [FelixFrameworkWiring] com.as.test.Activator org.apache.felix.framework.Felix.activateBundle(Felix.java:2154)
*INFO* [FelixFrameworkWiring] com.as.test.Activator org.apache.felix.framework.Felix.startBundle(Felix.java:2072)
*INFO* [FelixFrameworkWiring] com.as.test.Activator org.apache.felix.framework.Felix$RefreshHelper.restart(Felix.java:4911)
*INFO* [FelixFrameworkWiring] com.as.test.Activator org.apache.felix.framework.Felix.refreshPackages(Felix.java:4148)
*INFO* [FelixFrameworkWiring] com.as.test.Activator org.apache.felix.framework.FrameworkWiringImpl.run(FrameworkWiringImpl.java:178)
*INFO* [FelixFrameworkWiring] com.as.test.Activator java.lang.Thread.run(Thread.java:745)
3. Restarts from FelixFrameworkWiring
*INFO* [FelixFrameworkWiring] com.as.test.Activator THREAD: Thread[FelixFrameworkWiring,5,main]
*INFO* [FelixFrameworkWiring] com.as.test.Activator java.lang.Thread.dumpThreads(Native Method)
*INFO* [FelixFrameworkWiring] com.as.test.Activator java.lang.Thread.getAllStackTraces(Thread.java:1640)
*INFO* [FelixFrameworkWiring] com.as.test.Activator com.as.test.Activator.printStrackTraces(Activator.java:33)
*INFO* [FelixFrameworkWiring] com.as.test.Activator com.as.test.Activator.start(Activator.java:23)
*INFO* [FelixFrameworkWiring] com.as.test.Activator org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
*INFO* [FelixFrameworkWiring] com.as.test.Activator org.apache.felix.framework.Felix.activateBundle(Felix.java:2154)
*INFO* [FelixFrameworkWiring] com.as.test.Activator org.apache.felix.framework.Felix.startBundle(Felix.java:2072)
*INFO* [FelixFrameworkWiring] com.as.test.Activator org.apache.felix.framework.Felix$RefreshHelper.restart(Felix.java:4911)
*INFO* [FelixFrameworkWiring] com.as.test.Activator org.apache.felix.framework.Felix.refreshPackages(Felix.java:4148)
*INFO* [FelixFrameworkWiring] com.as.test.Activator org.apache.felix.framework.FrameworkWiringImpl.run(FrameworkWiringImpl.java:178)
【问题讨论】:
-
如果我是你,我会写一个 Bundle Activator,然后简单地将 start 和 stop 方法的堆栈跟踪从这些方法打印到控制台。从堆栈跟踪中,您可以找出正在发生的事情。可能是某种神奇的技术可以编织,但也可能有其他原因。
-
我认为你的 pom.xml 有这方面的作用,你能检查一下吗?
-
我将尝试激活器并打印堆栈跟踪。我应该在 pom 中检查什么?
-
我已将激活器的堆栈跟踪添加到我的问题中。我真的不知道该怎么办,我看到涉及两个进程,Background installed 和 FelixFrameworkWiring 但我不知道为什么它们都启动我的包。
-
猜猜你的bundle是先启动的,然后一些bundle被移除/安装,然后刷新被调用,因为你的bundle被重新连接到其他包。接线的不同之处可能很有趣(如果有的话)。我现在在activate函数中写出下面的结果,看看有没有变化:bundleContext.getBundle().adapt(BundleWiring.class).getRequiredWires(null);
标签: osgi apache-felix sling