[英]How to fix org.osgi.framework.BundleException: Imported package names cannot be zero length
我有包含許多使用 OSGI 包的模塊的整體代碼,我需要從 jdk8 升級到 jdk11,在部署中我收到了很多與 OSGI 和 apache.felix 相關的錯誤和警告:比如:
OSGI cant resolved dependency with version: xxx and warning like:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender (file:/full-test/framework/org.apache.felix.framework-5.6.10.jar) to method java.net.URLClassLoader.addURL(java.net.URL)
WARNING: Please consider reporting this to the maintainers of org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
所以我將 felix.framework 更新到 7+ 版本,將 OSGI 更新到最新版本 1.4.0。 現在我在將映像部署到 docker 時遇到此錯誤:
org.osgi.framework.BundleException: Imported package names cannot be zero length.
ngwi | at org.apache.felix.framework.util.manifestparser.ManifestParser.normalizeImportClauses(ManifestParser.java:361)
ngwi | at org.apache.felix.framework.util.manifestparser.ManifestParser.<init>(ManifestParser.java:186)
ngwi | at org.apache.felix.framework.BundleRevisionImpl.<init>(BundleRevisionImpl.java:117)
ngwi | at org.apache.felix.framework.BundleImpl.createRevision(BundleImpl.java:1290)
ngwi | at org.apache.felix.framework.BundleImpl.<init>(BundleImpl.java:114)
ngwi | at org.apache.felix.framework.Felix.installBundle(Felix.java:3287)
ngwi | at org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:147)
ngwi | at org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:120)
ngwi | at com.intuit.cto.wi.rest.osgi.listener.ProvisionActivator.start(ProvisionActivator.java:35)
ngwi | at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:849)
ngwi | at org.apache.felix.framework.Felix$SystemBundleActivator.start(Felix.java:5173)
ngwi | at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:849)
ngwi | at org.apache.felix.framework.Felix.init(Felix.java:899)
ngwi | at org.apache.felix.framework.Felix.init(Felix.java:648)
ngwi | at com.intuit.cto.wi.rest.osgi.ApacheFelix.start(ApacheFelix.java:56)
ngwi | at com.intuit.cto.wi.rest.osgi.listener.FrameworkService.doStart(FrameworkService.java:63)
ngwi | at com.intuit.cto.wi.rest.osgi.listener.FrameworkService.start(FrameworkService.java:41)
ngwi | at com.intuit.cto.wi.rest.osgi.listener.StartupListener.contextInitialized(StartupListener.java:24)
ngwi | at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4763)
ngwi | at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5232)
ngwi | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
ngwi | at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
ngwi | at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:727)
ngwi | at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695)
ngwi | at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1016)
ngwi | at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1903)
ngwi | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
ngwi | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
ngwi | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
ngwi | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
ngwi | at java.base/java.lang.Thread.run(Thread.java:829)
以及未解決的捆綁包。 如何解決這些問題?
在我的情況下,由於 java 版本問題而發生此錯誤。 可能是你的代碼不支持 jdk11
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.