【发布时间】:2026-01-27 11:40:02
【问题描述】:
我继承的一个基于 OSGi 的应用程序使用 org.springframework.osgi.extender 捆绑包版本 1.2.1。 目前,我使用的是 Java 1.7 和 Spring 2.5.6。
我最近在我的机器上安装了 Java 8,但由于以下错误,org.springframework.osgi.extender 包不再启动:
org.osgi.framework.BundleException: Activator start error in bundle org.springframework.osgi.extender [21].
at org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2064)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
at org.apache.felix.shell.impl.StartCommandImpl.execute(StartCommandImpl.java:114)
at org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:249)
at org.apache.felix.shell.tui.Activator$ShellTuiRunnable.run(Activator.java:184)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Cannot create ConcurrentHashMap - neither JDK 1.5 nor backport-concurrent available on the classpath
at org.springframework.core.CollectionFactory.createConcurrentMap(CollectionFactory.java:229)
at org.springframework.osgi.extender.internal.activator.ContextLoaderListener.<init>(ContextLoaderListener.java:332)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336)
at org.apache.felix.framework.Felix.activateBundle(Felix.java:2141)
... 6 more
java.lang.IllegalStateException: Cannot create ConcurrentHashMap - neither JDK 1.5 nor backport-concurrent available on the classpath
我打算将 Spring 升级到 4.0.3,但我注意到 org.springframework.core.CollectionFactory.createConcurrentMap() 方法已被弃用并删除。
Spring DM 会升级到 Spring 4.* 吗?
【问题讨论】: