开发者社区 > 云存储 > 对象存储OSS > 正文

alibaba-cloud-oss-java-sdk报错

报错

Parameter 0 of method inetIPv6Util in com.alibaba.cloud.nacos.utils.UtilIPv6AutoConfiguration required a single bean, but 2 were found:
    - spring.cloud.inetutils-org.springframework.cloud.commons.util.InetUtilsProperties: defined in null
    - inetUtilsProperties: defined by method 'inetUtilsProperties' in class path resource [org/springframework/cloud/commons/util/UtilAutoConfiguration.class]

父项目依赖:


<properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring-boot.version>2.7.7</spring-boot.version>
        <spring-cloud.version>2021.0.5</spring-cloud.version>
        <spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- SpringCloud 微服务 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- SpringCloud Alibaba 微服务 -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

子项目依赖:

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alicloud-oss</artifactId>
            <version>2.2.0.RELEASE</version>
        </dependency>

upload代码:


@Autowired
private OSSClient ossClient;


@Test
void testOssClientUpload() throws FileNotFoundException {
  String bucketName = "cloud-big-mall";
  String objectName = "123.png";
  FileInputStream file = new FileInputStream("C:\\Users\\Alex.Mahone\\Pictures\\Screenshots\\123.png");
  ossClient.putObject(bucketName, objectName, file);
}

yml配置:

    alicloud:
      access-key: xxx
      secret-key: xxx
      oss:
        endpoint: xxx

展开
收起
游客s6h26nu4zv3jw 2023-10-21 20:17:54 681 0
5 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    这个报错信息表示在com.alibaba.cloud.nacos.utils.UtilIPv6AutoConfiguration类中,inetIPv6Util方法需要一个单例的bean,但是找到了两个bean:一个是spring.cloud.inetutils-org.springframework.cloud.commons.util.InetUtilsProperties,另一个是inetUtilsProperties

    要解决这个问题,你需要确保只有一个bean定义了InetUtilsProperties。你可以尝试以下方法:

    1. 检查你的项目中是否有多个配置文件(如application.properties或application.yml),并确保只有一个文件包含了InetUtilsProperties的定义。如果有多个文件,请删除其他文件中的InetUtilsProperties定义。

    2. 如果问题仍然存在,尝试在你的项目中排除其中一个包含InetUtilsProperties定义的依赖。例如,如果你使用的是Maven,可以在pom.xml文件中排除不需要的依赖:

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>alibaba-cloud-oss-java-sdk</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-commons-util</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
    2023-10-22 18:54:42
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    这个错误是因为在 Spring 应用程序中,有两个相同的 bean 定义,但是方法 inetIPv6Util 需要一个单一的 bean。为了解决这个问题,您可以尝试以下方法:

    1. 首先,检查您的项目依赖,确保您只使用了一个版本的 alibaba-cloud-oss-java-sdk 和 spring-cloud-starter-netflix-eureka-client。如果有多个版本,可能会导致这种冲突。
    2. 如果上述步骤没有解决问题,尝试在您的配置类中使用 @Bean 注解来定义 InetUtilsProperties bean。例如:

    import org.springframework.cloud.commons.util.InetUtilsProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    @Configuration
    public class MyConfig {
    @Bean
    public InetUtilsProperties inetUtilsProperties() {
    return new InetUtilsProperties();
    }
    }

    2023-10-22 08:27:07
    赞同 展开评论 打赏
  • 您好!这个错误提示表明inetIPv6Util这个方法在自动装配时找到了2个InetUtilsProperties类型的Bean,但它需要的是单个的Bean。这种情况通常发生在Spring的自动装配机制无法确定使用哪一个Bean的时候。

    你可以尝试以下几种方式来解决这个问题:

    1. 指定使用哪一个InetUtilsProperties Bean:

      @Bean
      public InetIPv6Util inetIPv6Util(@Qualifier("inetUtilsProperties") InetUtilsProperties properties) {
       // ...
      }
      
    2. 排除不需要的InetUtilsProperties Bean:

      @Configuration
      @Exclude({SomeConfiguration.class})
      public class YourConfiguration {
       // ...
      }
      

    另外,建议你检查一下spring-cloud-starter-alicloud-oss的版本,确保它与你项目中使用的Spring Boot和Spring Cloud版本兼容。如果版本不兼容,也有可能导致这种错误。

    2023-10-21 22:57:51
    赞同 展开评论 打赏
  • cloud可能有冲突这个错误是由于项目中有两个InetUtilsProperties类型的bean,而com.alibaba.cloud.nacos.utils.UtilIPv6AutoConfiguration类中的inetIPv6Util方法只需要一个参数。这导致了Spring Boot的自动配置失败,无法启动应用程序。

    2023-10-21 22:27:13
    赞同 2 展开评论 打赏
  • 这个报错是因为在com.alibaba.cloud.nacos.utils.UtilIPv6AutoConfiguration类中,需要注入一个InetUtilsProperties类型的bean,但是父项目中存在两个定义了相同类型的bean。为了解决这个问题,你可以尝试以下方法:

    1. 检查父项目中是否有其他配置类或配置文件中是否重复定义了InetUtilsProperties类型的bean。如果有,请删除或修改其中一个。

    2. 如果父项目中没有其他配置类或配置文件中重复定义了InetUtilsProperties类型的bean,那么可能是由于依赖冲突导致的。你可以尝试将父项目的依赖管理中的spring-cloud-commons版本升级到最新版本,或者尝试使用其他版本的spring-cloud-commons替换当前的版本。

    3. 如果以上方法都无法解决问题,你可以尝试在子项目的pom.xml文件中显式地指定spring-cloud-commons的版本,以确保使用的是正确的版本。例如:

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-commons</artifactId>
        <version>2021.0.5</version>
    </dependency>
    

    希望这些建议能帮助你解决问题。

    2023-10-21 22:02:55
    赞同 展开评论 打赏

对象存储 OSS 是一款安全、稳定、高性价比、高性能的云存储服务,可以帮助各行业的客户在互联网应用、大数据分析、机器学习、数据归档等各种使用场景存储任意数量的数据,以及进行任意位置的访问,同时通过丰富的数据处理能力更便捷地使用数据。

相关产品

  • 对象存储
  • 热门讨论

    热门文章

    相关电子书

    更多
    OSS运维进阶实战手册 立即下载
    《OSS运维基础实战手册》 立即下载
    OSS运维基础实战手册 立即下载