반응형
내가 하고 싶은 것은 아래와같이 argument에 날짜를 넣고 그것을 메인쪽에 있는 String[] args에서 받아서 처리하는 것이다.
디버깅을 해보면 args에 위에서 설정했던 값이 들어오는것 처럼 보인다.
그러나 현실은 에러!! 아래에 보면 public void run()쪽에서 예외가 나버린다.
java.lang.reflect.InvocationTargetException
콘솔창에 찍힌 오류 내용
Exception in thread "restartedMain" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
Caused by: java.lang.NullPointerException
at com.kakaoenterprise.errorlog.controller.ErrorLogController.excuteMagnager(ErrorLogController.java:19)
at com.kakaoenterprise.errorlog.ErrorlogApplication.main(ErrorlogApplication.java:12)
... 5 more
위의 코드에서 어떻게 변해야 args를 가져다가 잘 사용할 수 있을까?
ApplicationRunner를 implemets하였다.
그리고 run을 Overriding하여 사용.
package com.kakaoenterprise.errorlog;
import com.kakaoenterprise.errorlog.controller.ErrorLogController;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ErrorlogApplication implements ApplicationRunner
{
public static void main(String[] args) {
SpringApplication.run(ErrorlogApplication.class, args);
}
@Override
public void run( ApplicationArguments args ) throws Exception
{
String[] errorLogDate = args.getSourceArgs();
if(errorLogDate.length <= 0){
errorLogDate = new String[]{
"20210627"
};
}
//System.out.println( "DATE: " + errorLogDate[0] );
ErrorLogController errLog = new ErrorLogController();
errLog.excuteMagnager(errorLogDate[0]);
}
}
jar파일에서 구동시에는 아래와 같은 명령어를 사용.
java -jar errorlog-0.0.1-SNAPSHOT.jar 20210701
반응형
'OpenSource > Spring Boot' 카테고리의 다른 글
springbootStudy02 - 그래들 기반 springboot project만들기! build.gradle 이해하기 (0) | 2021.10.14 |
---|---|
springbootStudy01 - Jetbrains toolbox 설치 (0) | 2021.10.13 |
SpringBoot 구조 - Monolith / Micro (0) | 2021.01.04 |
org.apache.catalina.LifecycleException: Failed to start component (0) | 2019.05.10 |
ace-t의 Spring Boot 따라잡기(기본 - freeMarker 연동) (0) | 2016.08.28 |