- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在使用 Beam 管道 examples作为尝试从 S3 为我的管道加载文件的指南。就像在示例中一样,我定义了自己的 PipelineOptions
,它也扩展了 S3Options我正在尝试使用 DefaultAWSCredentialsProviderChain 。配置它的代码是:
MyPipelineOptions options = PipelineOptionsFactory.fromArgs(args).as(MyPipelineOptions.class);
options.setAwsCredentialsProvider(new DefaultAWSCredentialsProviderChain());
options.setAwsRegion("us-east-1");
runPipeline(options);
当我从 Intellij 运行它时,使用 Direct Runner 可以正常工作。但是当我将它打包为 jar 并执行它(也使用 Direct Runner)时,我看到:
Exception in thread "main" java.lang.IllegalArgumentException: PipelineOptions specified failed to serialize to JSON.
at org.apache.beam.runners.direct.DirectRunner.run(DirectRunner.java:166)
at org.apache.beam.runners.direct.DirectRunner.run(DirectRunner.java:67)
at org.apache.beam.sdk.Pipeline.run(Pipeline.java:313)
at org.apache.beam.sdk.Pipeline.run(Pipeline.java:299)
at a.b.c.beam.CleanSkeleton.runPipeline(CleanSkeleton.java:69)
at a.b.c.beam.CleanSkeleton.main(CleanSkeleton.java:53)
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Unexpected IOException (of type java.io.IOException): Failed to serialize and deserialize property 'awsCredentialsProvider' with value 'com.amazonaws.auth.DefaultAWSCredentialsProviderChain@40f33492'
at com.fasterxml.jackson.databind.JsonMappingException.fromUnexpectedIOE(JsonMappingException.java:338)
at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsBytes(ObjectMapper.java:3247)
at org.apache.beam.runners.direct.DirectRunner.run(DirectRunner.java:163)
... 5 more
我正在使用 gradle 来构建我的 jar 并执行以下任务:
jar {
manifest {
attributes (
'Main-Class': 'a.b.c.beam.CleanSkeleton'
)
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
from('src') {
include '/main/resources/*'
}
zip64 true
exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'
}
最佳答案
出现此问题的原因是,在创建 fat/uber jar 时,META-INF/serivces
中的文件被重复文件覆盖。特别是 com.fasterxml.jackson.databind.Module ,其中需要定义许多 Jackson 模块,但缺少这些模块。其中包括 org.apache.beam.sdk.io.aws.options.AwsModule 和 com.fasterxml.jackson.datatype.joda.JodaModule。 DirectRunner
中的代码实例化 ObjectMapper
,如下所示:
new ObjectMapper()
.registerModules(ObjectMapper.findModules(ReflectHelpers.findClassLoader()));
ObjectMapper::findModules
依赖于 java.util.ServiceLoader
,它从 META-INF/services/
文件中定位服务。
解决方案是使用 gradle Shadow plugin构建 fat/uber jar 并将其配置为合并服务文件:
apply plugin: 'com.github.johnrengelman.shadow'
shadowJar {
mergeServiceFiles()
zip64 true
}
关于java - 光束 : Failed to serialize and deserialize property 'awsCredentialsProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57039951/
我有从服务器生成的凭据和 token 。我使用了 AWSStaticCredentialsProvider,而我需要传递 token 以进行身份验证。 引用了很多链接,但除了凭据提供程序的自定义实
我正在编写一个 Java 应用程序,该应用程序使用 Spring 进行依赖项注入(inject),使用 AWS 提供各种服务。我将把应用程序部署到 EC2。我遇到的问题是在开发/部署期间以安全的方式设
我正在使用 2 个 Amazon 提供的库:redshift-jdbc42-1.2.27.1051 和 aws-java-sdk-core-1.11.600。这两个库都在包 com.amazonaws
我一直在使用 Beam 管道 examples作为尝试从 S3 为我的管道加载文件的指南。就像在示例中一样,我定义了自己的 PipelineOptions ,它也扩展了 S3Options我正在尝试使
我安装了适用于 java 的 AWS 工具包 并将其连接到我在构建路径中的项目,我尝试将文件上传到 S3。 File fileOfImages = new File("/sdcard/Save Ima
我正在创建自定义凭证提供程序,以便我可以设置访问 key 、 key 、 token 和过期时间。但是我在上传文件时收到以下错误 [__NSCFString expiration]: unrecogn
我是一名优秀的程序员,十分优秀!