"the trustAnchors parameter must be non-empty"是什么意思?



我正试图在一个应用程序中使用JetS3访问Amazon S3,该应用程序也使用Jersey和Grizzly(不确定这是否相关)。我的开发环境是OSX 10.7.3上的Eclipse,使用JRE版本1.7.0u.jdk.

我读到它与找不到"密钥库"有关,不管是什么,但它不需要使用任何本地密钥,我已经通过编程为它提供了S3的身份验证信息。

我不知道这是我的代码问题,还是我的开发环境问题,有人能帮忙吗?

编辑:我在命令行上添加了以下内容:

- Djavax.net.ssl.keyStore=/Library/Java/JavaVirtualMachines/1.7.0u.jdk/Contents/Home/jre/lib/security/cacerts

这个文件存在,但我仍然看到相同的错误:-(

Java的文件树和苹果的打包系统的交集再次袭来!

我刚刚解决了类似的问题(我认为是测试版升级失败的遗留问题)。至少是同样的错误。我在磁盘上发现的情况是,JDK安装中有符号链接,而不是实际文件(包括cacerts):

> ls -lt /Library/Java/JavaVirtualMachines/1.6.0_30-b12-404.jdk/Contents/Home/lib/security/
total 24
lrwxr-xr-x  1 root  admin     79 Apr  7 15:11 blacklist -> /System/Library/Java/Support/Deploy.bundle/Contents/Home/lib/security/blacklist
lrwxr-xr-x  1 root  admin     81 Apr  7 15:11 cacerts -> /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts
lrwxr-xr-x  1 root  admin     87 Apr  7 15:11 trusted.libraries -> /System/Library/Java/Support/Deploy.bundle/Contents/Home/lib/security/trusted.libraries

很遗憾,链接的Deploy.bundles不存在。

在我的案例中,我能够在Time Machine中进行回顾,找到已删除的捆绑包并将其恢复。

你可能已经有一些旧版本可以链接。至少你应该能够查看是否有类似的潜在问题。

很抱歉,这不是一个完整的解决方案,但我希望它能让你走得更远。

您总是可以从Oracle获得分发版,并将证书文件弹出到位,但如果您的安装缺少其他项目,则可能会出现其他问题。

在谷歌上我发现了这个博客:http://architecturalatrocities.com/post/19073788679/fixing-the-trustanchors-problem-when-running-openjdk-7

问题是openjdk没有包括这些文件,他建议链接到我在这种情况下必须恢复的Bundle文件。

最新更新