【问题标题】:Spring CLI v2.1.0.RELEASE - encrypt -> NoSuchMethodErrorSpring CLI v2.1.0.RELEASE - 加密 -> NoSuchMethodError
【发布时间】:2023-03-14 00:54:01
【问题描述】:

当我跑步时:

spring encrypt totallysecretpassword --key=insanity

线程“main”中的异常 java.lang.reflect.InvocationTargetException 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) 在 org.springframework.boot.loader.Launcher.launch(Launcher.java:87) 在 org.springframework.boot.loader.Launcher.launch(Launcher.java:50) 在 org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) 引起:java.lang.NoSuchMethodError: org.springframework.cloud.cli.command.encrypt.BaseEncryptOptionHandler.option(Ljava/util/Collection;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder; 在 org.springframework.cloud.cli.command.encrypt.BaseEncryptOptionHandler.options(BaseEncryptOptionHandler.java:53) 在 org.springframework.boot.cli.command.options.OptionHandler.getParser(OptionHandler.java:68) 在 org.springframework.boot.cli.command.options.OptionHandler.run(OptionHandler.java:83) 在 org.springframework.boot.cli.command.OptionParsingCommand.run(OptionParsingCommand.java:54) 在 org.springframework.boot.cli.command.CommandRunner.run(CommandRunner.java:219) 在 org.springframework.boot.cli.command.CommandRunner.runAndHandleErrors(CommandRunner.java:171) 在 org.springframework.boot.cli.SpringCli.main(SpringCli.java:63) ... 8 更多

我按照此处的说明重新安装了 JCE:https://cloud.spring.io/spring-cloud-cli/

基本上,我想要的是: https://blog.novatec-gmbh.de/encrypted-properties-spring/

但在 1.3.2 中还是同样的错误,所以我使用了最新的……但仍然没有成功……我错过了什么?

-- 没有在我的 Windows 盒子上运行 2.0.8 的加密,@jtim 的答案在 ubuntu-box 上为我做这件事!

【问题讨论】:

    标签: spring encryption


    【解决方案1】:

    这是对 spring-boot-cli 的重大更改。等待兼容版本的 spring-cloud-cli 发布(新版本的request)。

    或者您可以 install 没有更改的旧版本 spring-boot-cli,例如 2.0.8.RELEASE

    【讨论】:

      【解决方案2】:

      刚刚遇到了同样的问题。 使用 Sdkman,您可以快速降级到运行良好的版本:

      sdk ls springboot
      sdk use springboot 2.0.8.RELEASE
      spring install org.springframework.cloud:spring-cloud-cli:2.0.0.RELEASE
      

      【讨论】:

      • 降级 spring 对我有用,我现在可以毫无问题地使用 encrypt 命令。
      【解决方案3】:

      使用较低版本的 Spring boot cli。以下配置对我有用:

      Springboot cli 版本:2.1.6.RELEASE

      创建系统变量,

      name: SPRING_HOME

      value: C:\Users\zafrullahsyed\Downloads\spring-2.1.6.RELEASE

      将bin文件夹添加到系统路径:%SPRING_HOME%\bin

      以管理员身份打开 CMD,否则不会在 spring-2.1.6.RELEASE\lib\ext 文件夹中创建 jar

      检查 Spring --version

      Spring CLI v2.1.6.RELEASE

      然后安装sping cloud插件:

      spring install org.springframework.cloud:spring-cloud-cli:2.1.0.RELEASE

      spring encrypt mysecret --key foo

      加密值:1c656a1a4617146a7e76d977ca5fa2cfeb0afecc5655677193f53ab43578dd4d

      spring decrypt --key foo 1c656a1a4617146a7e76d977ca5fa2cfeb0afecc5655677193f53ab43578dd4d

      解密值:

      我的秘密

      【讨论】:

        【解决方案4】:

        我也遇到了这个问题,这就是我所做的,

        # Step 1: Download the binaries to install (https://repo.spring.io/release/org/springframework/boot/spring-boot-cli/)
        $ wget https://repo.spring.io/release/org/springframework/boot/spring-boot-cli/2.0.8.RELEASE/spring-boot-cli-2.0.8.RELEASE-bin.tar.gz
        
        # Step 2: Extract the tar.gz
        $ tar xvf spring-boot-cli-2.0.8.RELEASE-bin.tar.gz
        
        # Step 3: Enable execute permissions
        $ chmod +x spring-2.0.8.RELEASE/bin/spring
        
        # Install Spring Cloud
        $ spring install org.springframework.cloud:spring-cloud-cli:2.0.0.RELEASE
        
        # Step 5: Add it to your PATH
        $ cd spring-2.0.8.RELEASE/bin
        $ echo "PATH=$(pwd):\$PATH" >> .bashrc or  .zshrc
        

        这通常适用于 Mac 和任何基于 Linux 的系统。我亲自在 Mac 和 Linux Mint 上试过这个

        输出:

        $ spring encrypt totallysecretpassword --key=insanity
        f5a7944890c871ef58971eeaf123bbc750727b012cce8f7072def5bf71b000fb00089e106775ac0306b5f15b8f17d233
        

        希望这对某人有所帮助。

        【讨论】:

          猜你喜欢
          • 2018-10-22
          • 2021-03-18
          • 2019-04-23
          • 1970-01-01
          • 2015-03-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-14
          相关资源
          最近更新 更多