0

OSGi バンドル (Apache Sling Custom AuthenticationHandler) を JAR ファイルに正常にビルドしました。バンドル jar を最終的な OSGi 環境 (Felix) にインストールしてバンドルを開始すると、ログに次のエラーが記録されました。

Error: Expecting a stackmap frame at branch target 13 in method com.fl.safe.authhandler.SafeAuthenticationHandler.unbindRepository(Lorg/apache/sling/jcr/api/SlingRepository;)V at offset 5) java.lang.VerifyError: Expecting a stackmap frame at branch target 13 in method com.fl.safe.authhandler.SafeAuthenticationHandler.unbindRepository(Lorg/apache/sling/jcr/api/SlingRepository;)V at offset 5
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413)
    at java.lang.Class.getConstructor0(Class.java:2723)
    at java.lang.Class.newInstance0(Class.java:345)
    at java.lang.Class.newInstance(Class.java:327)
    ...

何がうまくいかなかったのでしょうか?

4

2 に答える 2

0

これは破損したJARファイルのように見えます。VerifyErrorクラスファイルが内部的に矛盾している場合、またはセキュリティ上の問題がある場合に、JVMによってスローされます。

于 2013-03-02T22:51:24.097 に答える
0

バンドルが Java 1.6 を使用してコンパイルされ、Java 1.7 の OSGi コンテナー環境にデプロイされたことが、特定のエラーの原因であることが判明しました。同じ問題が発生する可能性がある場合は、fileコマンドを実行して、.class ファイルのコンパイルと生成に使用された Java のバージョンを特定できます。例えば、

% file XQueryUtil.class
XQueryUtil.class: compiled Java class data, version 49.0 (Java 1.5)
于 2013-04-10T00:56:57.663 に答える