2

現在、Equinox でバンドルを開始しようとしています。

このバンドルには commons-logging が必要です。

Maven Central の最新の commons-logging jar を含めてみました。運がない。

その後、slf4j に移行しました。これは、OSGi コンソールからの私の現在のステータスです。

11      ACTIVE      jcl.over.slf4j_1.6.6
12      ACTIVE      slf4j.api_1.6.6
                    Fragments=14
14      RESOLVED    slf4j.simple_1.6.6
                    Master=12

ログに次の例外が表示されます。

!ENTRY org.eclipse.osgi 4 0 2012-07-09 11:36:56.157
!MESSAGE Error starting bundle: initial@file:/C:/test/slf4j-simple-1.6.6.jar
!STACK 0
org.osgi.framework.BundleException: A fragment bundle cannot be started: slf4j.simple_1.6.6 [14]
    at org.eclipse.osgi.framework.internal.core.BundleFragment.startWorker(BundleFragment.java:224)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.startBundle(EclipseStarter.java:1119)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.startBundles(EclipseStarter.java:1112)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.loadBasicBundles(EclipseStarter.java:631)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:277)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.main(EclipseStarter.java:151)

!ENTRY org.eclipse.osgi 4 0 2012-07-09 11:36:56.205
!MESSAGE Bundle slf4j.simple_1.6.6 [14] is not active.

commons-logging と互換性のあるバンドルを Equinox 3.8 で起動して実行するための最良の方法は何ですか?

4

2 に答える 2

4

slf4j-simpleはフラグメントであり、フラグメントを開始できません。

最後にconfig.iniにリストしまし@startたか?それを取り除くだけです。

于 2012-07-09T11:11:15.363 に答える
1

OSGi Service Platform Core Specification より

A Fragment bundle must enter the resolved state only if it has been successfully
attached to its host bundle.

All class or resource loading of a fragment is handled through the host’s
class loader, a fragment must never have its own class loader. Fragment bundles
are treated as if they are an intrinsic part of their host.

多くの場合、フラグメント バンドルを開始すると、org.osgi.framework.BundleException: A fragment bundle cannot be started Exception.

仕様によると、フラグメント バンドルを開始する必要はありません。コードの問題ではありません。

于 2013-07-24T12:21:49.330 に答える