+-
在具有JJWT版本0.11.1的Karaf(OSGi)中运行,无法加载io.jasonwebtoken.impl.crypto.MacProvider类

在Karaf中运行(OSGi)无法加载io.jasonwebtoken.impl.crypto.MacProvider类

jjwt的版本是0.11.1

我的捆绑包包括jjwt-api(提供)和jjwt-jackson(编译),我让jjwt-impl作为捆绑包运行。

我需要创建一个“大型捆绑包”来进行这项工作吗?

0
投票

所以,我得到了这个工作,但并不理想。

首先,jjwt-impl尽管具有所有正常的OSGi标签,但不导出任何内容。

所以,我不得不做两件事-非常糟糕,但是我不知道该怎么办:

1)替换对当前包类加载器的签名方法调用周围的线程类加载器。

2)将jjwt-impl嵌入到调用的osgi包中并导出:

<Embed-Dependency>*;scope=runtime;inline=true</Embed-Dependency>
<Embed-Transitive>false</Embed-Transitive>

 <Export-Package>
     {local-packages},
     io.jsonwebtoken,
     io.jsonwebtoken.lang,
     io.jsonwebtoken.impl.crypto
 </Export-Package>