gpt4 book ai didi

spring - 不能在 Spring AWS 示例上强制转换为 org.springframework.core.io.WritableResource

转载 作者:行者123 更新时间:2023-12-03 23:17:37 26 4
gpt4 key购买 nike

我正在阅读这份文档:

http://cloud.spring.io/spring-cloud-aws/spring-cloud-aws.html

在 Spring 应用程序中使用 AWS。我对 S3 特别感兴趣,因此,我设置了应用程序并复制了这段代码以确保设置正常工作:

Resource resource = this.resourceLoader.getResource("s3://myBucket/rootFile.log");
WritableResource writableResource = (WritableResource) resource;
try (OutputStream outputStream = writableResource.getOutputStream()) {
outputStream.write("test".getBytes());
}

但是当我运行它时,我得到了这个错误:
java.lang.ClassCastException: org.springframework.web.context.support.ServletContextResource cannot be cast to org.springframework.core.io.WritableResource

有什么想法有什么问题吗?这是设置问题吗?它看起来不像我,但我对此很陌生。

最佳答案

我不得不删除

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>

来自我的依赖。

当包含 devtools 时,在 GenericApplicationContext.getResources() 方法中它执行 if block ,但没有 devtools 它调用 super.getResource():
public Resource getResource(String location) {
if (this.resourceLoader != null) {
return this.resourceLoader.getResource(location);
}
return super.getResource(location);
}

这将使用 s3 协议(protocol)处理程序并为您提供实现 WritableResource 的不同类型的资源。

关于spring - 不能在 Spring AWS 示例上强制转换为 org.springframework.core.io.WritableResource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47135265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com