Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用UploadObjectSingleOperation示例将文件上载到aws s3时出现SecurityException_Java_Amazon Web Services_Amazon S3 - Fatal编程技术网

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