Java 使用UploadObjectSingleOperation示例将文件上载到aws s3时出现SecurityException
我在尝试从此处运行示例时发现此异常: 有人能帮忙吗Java 使用UploadObjectSingleOperation示例将文件上载到aws s3时出现SecurityException,java,amazon-web-services,amazon-s3,Java,Amazon Web Services,Amazon S3,我在尝试从此处运行示例时发现此异常: 有人能帮忙吗 Exception in thread "main" java.lang.ExceptionInInitializerError at javax.crypto.Mac.getInstance(Mac.java:171) at com.amazonaws.auth.AbstractAWSSigner.sign(AbstractAWSSigner.java:87) at com.amazonaws.auth.AbstractAWSSigner.s
Exception in thread "main" java.lang.ExceptionInInitializerError
at javax.crypto.Mac.getInstance(Mac.java:171)
at com.amazonaws.auth.AbstractAWSSigner.sign(AbstractAWSSigner.java:87)
at com.amazonaws.auth.AbstractAWSSigner.signAndBase64Encode(AbstractAWSSigner.java:69)
at com.amazonaws.auth.AbstractAWSSigner.signAndBase64Encode(AbstractAWSSigner.java:58)
at com.amazonaws.services.s3.internal.S3Signer.sign(S3Signer.java:127)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:652)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:460)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:295)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3697)
at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1434)
at com.bartoff.s3Utils.UploadObject.main(UploadObject.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.SecurityException: Can not initialize cryptographic mechanism
at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:86)
... 16 more
Caused by: java.lang.SecurityException: The jurisdiction policy files are not signed by a trusted signer!
at javax.crypto.JarVerifier.verifyPolicySigned(JarVerifier.java:289)
at javax.crypto.JceSecurity.loadPolicies(JceSecurity.java:316)
at javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:265)
at javax.crypto.JceSecurity.access$000(JceSecurity.java:48)
at javax.crypto.JceSecurity$1.run(JceSecurity.java:78)
at java.security.AccessController.doPrivileged(Native Method)
at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:76)
... 16 more
线程“main”java.lang.ExceptionInInitializeError中的异常
位于javax.crypto.Mac.getInstance(Mac.java:171)
位于com.amazonaws.auth.AbstractAWSSigner.sign(AbstractAWSSigner.java:87)
位于com.amazonaws.auth.AbstractAWSSigner.signAndBase64Encode(AbstractAWSSigner.java:69)
在com.amazonaws.auth.AbstractAWSSigner.signAndBase64Encode(AbstractAWSSigner.java:58)
位于com.amazonaws.services.s3.internal.S3Signer.sign(S3Signer.java:127)
在com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:652)上
在com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:460)
在com.amazonaws.http.AmazonHttpClient.execute上(AmazonHttpClient.java:295)
位于com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3697)
位于com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1434)
位于com.bartoff.s3Utils.UploadObject.main(UploadObject.java:32)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:606)
位于com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
原因:java.lang.SecurityException:无法初始化加密机制
在javax.crypto.JceSecurity(JceSecurity.java:86)
... 还有16个
原因:java.lang.SecurityException:辖区策略文件未由受信任的签名者签名!
在javax.crypto.JarVerifier.verifyPolicySigned(JarVerifier.java:289)
在javax.crypto.JceSecurity.LoadPolicys(JceSecurity.java:316)
在javax.crypto.JceSecurity.setupJustictionPolicys上(JceSecurity.java:265)
javax.crypto.JceSecurity.access$000(JceSecurity.java:48)
javax.crypto.JceSecurity$1.run(JceSecurity.java:78)
位于java.security.AccessController.doPrivileged(本机方法)
位于javax.crypto.JceSecurity(JceSecurity.java:76)
... 还有16个
这是由于Java的安全问题造成的 解决它
- 从oracle站点下载JCE文件
- 将文件解压缩到
{YOUR_JDK_PATH}/jdk1.7.0_51/jre/lib/security