“trustAnchors参数必须非空”是什么意思?

时间:2012-03-09 21:06:49

标签: java amazon-s3 jersey openjdk grizzly

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

我已经读到它无法找到“密钥库”,无论是什么 - 但它不需要使用任何本地密钥,我已经以编程方式为它提供了S3的身份验证信息

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

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

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

此文件存在,但我仍然看到同样的错误: - (

1 个答案:

答案 0 :(得分:0)

Java的文件树和Apple的包装系统再次罢工!

我刚刚解决了与此类似的问题(我认为这是一次拙劣的beta版升级的遗产)。同样的错误,至少。我在磁盘上发现的情况是我的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文件。