当前位置: 首页 > 知识库问答 >
问题:

无法执行CommandLineRunner-Spring Boot

穆嘉
2023-03-14

我刚接触Spring,正在处理这个问题。

它抛出一个异常:

尝试执行CommandLineRunner时失败。

我已经尝试了几种方法,但在控制台中的结果仍然是一样的:

java.lang.IllegalStateException: Failed to execute CommandLineRunner
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:774) ~[spring-boot-2.7.4.jar:2.7.4]
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:755) ~[spring-boot-2.7.4.jar:2.7.4]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.7.4.jar:2.7.4]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-2.7.4.jar:2.7.4]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) ~[spring-boot-2.7.4.jar:2.7.4]
at io.getarrays.userservice.UserserviceApplication.main(UserserviceApplication.java:19) ~[classes/:na]
Caused by: java.lang.NullPointerException: Cannot invoke "io.getarrays.userservice.domain.User.getRoles()" because "user" is null
at io.getarrays.userservice.service.UserServiceImpl.addRoleToUser(UserServiceImpl.java:36) ~[classes/:na]
at io.getarrays.userservice.service.UserServiceImpl$$FastClassBySpringCGLIB$$cf86a147.invoke(<generated>) ~[classes/:na]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.23.jar:5.3.23]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.23.jar:5.3.23]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.23.jar:5.3.23]
at `Datos en Consola`org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23]
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.23.jar:5.3.23]
at io.getarrays.userservice.service.UserServiceImpl$$EnhancerBySpringCGLIB$$4c838cf9.addRoleToUser(<generated>) ~[classes/:na]
at io.getarrays.userservice.UserserviceApplication.lambda$run$0(UserserviceApplication.java:35) ~[classes/:na]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:771) ~[spring-boot-2.7.4.jar:2.7.4]
... 5 common frames omitted

代码:

@SpringBootApplication
public class UserserviceApplication {

    public static void main(String[] args) {
        SpringApplication.run(UserserviceApplication.class, args);
    }

    @Bean
    CommandLineRunner run(UserService userService){
        return args -> {

保存角色

            userService.saveRole(new Role(null, "ROLE_USER"));
            userService.saveRole(new Role(null, "ROLE_MANAGER"));
            userService.saveRole(new Role(null, "ROLE_ADMIN"));
            userService.saveRole(new Role(null, "ROLE_SUPER_ADMIN"));

保存用户


            userService.saveUser(new User(null,"John Travolta","jhon","1234", new ArrayList<>()));
            userService.saveUser(new User(null,"Will Smith","will","1234", new ArrayList<>()));
            userService.saveUser(new User(null,"Jim Carry","jim","1234", new ArrayList<>()));
            userService.saveUser(new User(null,"Arnold Schwarzenegger","arnold","1234", new ArrayList<>()));

用户添加角色


            userService.addRoleToUser("john","ROLE_USER");
            userService.addRoleToUser("will","ROLE_MANAGER");
            userService.addRoleToUser("jim","ROLE_ADMIN");
            userService.addRoleToUser("arnold","ROLE_SUPER_ADMIN");
            userService.addRoleToUser("arnold","ROLE_ADMIN");
            userService.addRoleToUser("arnold","ROLE_USER");
        };

    }

}

共有1个答案

樊琦
2023-03-14

原因:java.lang.NullPointerException:无法调用“io.getarrays.userservice.domain.User.getRoles()”,因为“User”在io.getarrays.userservice.service.UserServiceImpl.addRoleToUser(UserServiceImple.java:36)~[classes/:na]

所以问题出在用户服务的第36行.java。我的猜测:由于该方法的第一个参数:添加罗莱到用户

...可能只是个错别字:“约翰”对“约翰”

 类似资料:
  • 您好,我是Spring batch的新手,我遇到了以下无法解决的异常: 此处为我的代码: 我可以通过添加

  • 我正在尝试从命令行从Android SDK 工具运行 。但是,它不会启动并打印以下异常: 我的命令行是: 已设置。 以下是我的安装(sdkmanager - list): 怎么了?

  • 问题内容: 构建示例mvn项目后,我添加了依赖项和Java代码。 然后,我通过成功构建了JAR 。最后,尝试运行JAR时遇到错误。 问题答案: 您需要使用以下命令在清单中设置主类 取自这里。 编辑 如果您想将生成的jar与依赖项打包在一起,可以使用此 取自这里。

  • 构建一个示例mvn项目后,我添加了我的依赖项 然后,我通过成功地构建了我的JAR。最后,我在尝试运行JAR时遇到了一个错误。

  • 我使用了jQuery方法调用:,因此语法类似于: 问题: 当我单击image按钮时,它会给出以下错误消息:

  • 我已经尝试了这个平台上提供的所有答案,但没有成功。我正在执行这个命令行运行程序,但是run方法没有调用。 我感谢你的帮助。 谢谢 我尝试了以下解决方案,但得到了这个例外。 第一:在您的引导类(具有SpringApplication.run(…,args)的主方法的类)中,您可以在@SpringBootApplication注释处添加属性scanBasePackages: @SpringBootAp