Lucee上的JAR未找到BouncyCastleProvider [英] BouncyCastleProvider not found by JAR on Lucee

查看:0
本文介绍了Lucee上的JAR未找到BouncyCastleProvider的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们在Adobe ColdFusion中成功使用了AmazonPay API for Java(amazon-pay-api-sdk-java-2.2.2.jar)。我们最近引入了Lucee(在Jetty上,也在OpenJDK 8上运行),并尝试运行相同的代码(相关摘录):

payConfig = createObject("java", "com.amazon.pay.api.PayConfiguration").init();
payConfig.setPrivateKey("...");

但是,当调用setPrivateKey时,将到达Security.addProvider(new BouncyCastleProvider());PayConfiguration,我们收到一个java.lang.ClassNotFoundException

lucee.runtime.exp.NativeException: org.bouncycastle.jce.provider.BouncyCastleProvider
  at com.amazon.pay.api.PayConfiguration.setPrivateKey(PayConfiguration.java:77)
  [...]
  at java.lang.Thread.run(Thread.java:823)
 Caused by: java.lang.NoClassDefFoundError: org.bouncycastle.jce.provider.BouncyCastleProvider
  ... 57 more
 Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider not found by amazon.pay.api.sdk.java.2.2.2 [49]
  at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1597)
  at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79)
  at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:881)
  ... 57 more

我们已将所有依赖项(bcprov-jdk15on-1.65.jar作为BouncyCastle)放在/lucee-server/context/lib中。在.cfm/.cfc中创建BouncyCastleProvider确实可以正常工作: createObject("java", "org.bouncycastle.jce.provider.BouncyCastleProvider").init()

我不明白Lucee的类加载器在这里做什么。我错过了什么?

推荐答案

老实说,我也不知道Lucee的类加载器在做什么,但当通过Lucee/lib路径加载某些更复杂的JAR时,这种错误似乎相当常见。很可能在某个地方发生了阶级冲突。

Lucee现在是基于OSGi的,这意味着避免这种情况的最好方法是将第三方Java库作为OSGi包加载。一些库已经为OSGi打包,而其他库可以相当容易地进行转换。More details here

Amazon库似乎不是OSGi友好的,尽管它很可能不需要太多努力就可以转换。

目前,我将JavaLoader视为使其工作的最简单方法。我没有任何有效的Amazon密钥来完全测试,但使用JavaLoader,我至少能够调用payConfig.setPrivateKey()方法而不会收到ClassNotFoundException错误。

这篇关于Lucee上的JAR未找到BouncyCastleProvider的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆