본문 바로가기

Java5

Jar실행 시, java.lang.ClassNotFoundException발생. 스프링부트로 프로젝트 만들고.. 이제 테스트해보았다. IntelliJ 내장으로는 잘 돌았다. 근데.. jar로 실행하니 오류난다. 뭐야 이거.. -_-... (뭐긴.. 내가 모르니까 삽질한거지) 어.. 우선 output을 ${projectRootBaseDir}/target 으로 뽑아내고, 거기서 실행해본거다. 근데 jar파일이 내꺼 하나만 딱 있더라. Main에서 뭘 못찾은거다. 불러와야할 클래스들이 없는경우라고 한다. (이유는 못불러와서). 다른 패키지가 포함되어야한다면 같은 경로에 있어야하는것 같다. (C++, C#도 그랬으니까.. 원칙적으로는) 우선 패키지를 어떻게 같이 포함시켜줄까? 스택오버플로우에는 다 있더라.. (역시 스형..) org.apache.maven.plugins maven-depen.. 2022. 8. 1.
Springboot Servlet실행 시 추가할 것. 자바 Springboot로 API서비스를 만들었다. 배포형식은 jar로. 근데 구동이 안되더라.. 알고보니 서블릿초기화가 필요하다네? API를 사용할 모듈에서.. ServletInitializer를 추가한다. import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringA.. 2022. 7. 15.
Multi module빌드 시 output 경로 변경(Maven Project) 이번에 서비스를 만들어보면서, (기 서비스중인 녀석을 나중에 FE와 BE로 분리해보고싶어 개인적으로 프로젝트 시작.) 여러 프로젝트들로 쪼개보기 시작했다. 기능들을 개별적인 서비스로 만들면 나중에 편리하잖아? (MSA...) Maven으로 Output디렉토리를 변경해서.. 각 모듈의 산출물 경로를 root\target으로 모아보는게 이번 스터디 목적. 현재 프로젝트 구조는 이렇다. 지금은 아주 심플하다. db에서 데이터를 조회해오는 기능만 먼저 분리해서.. 이걸 output target을 모으고, 그리고 그걸 그대로 docker에 넣어서 배포가능한지 확인하는게 목적이니까. 위에거 되면 이제 기능들 하나하나 붙여나가야지. 그 전에 먼저 docker에 같이 말아넣는것이 가능한지 feasibility를 확인하.. 2022. 7. 8.
Maven project - pom.xml (1) 메이븐으로 프로젝트를 만들면, pom.xml이 생성되고, 여기에서 정말 많은걸 한다는걸 느낀다..;; 내가 나중에 까먹지 않기 위해 여기에 한번 정리. 전체적인 pom.xml 4.0.0 그룹ID Artifact ID 패키징타입. (ex. war, jar) 이름 부모ArtifactId 그룹ID ${DependencyInfo} 값 ${Plugin Information} ${Dependency info} dependencyManagement의 경우 user library에 대해 정의하는것 같은데 좀 더 확인해보아야겠다. 메이븐 플러그인은 필요한 라이브러리를 어떻게 참조할지 설정하는 것 같은데.. 이건 좀 더 공부하고 글을 써야겠다.. 2022. 6. 28.
Spring Scheduler 사용하기 Spring에서 Scheduler를 이용하면, 아주 간단히(?) 일정 시간 간격으로 실행되는 job을 만들 수 있다. Quartz를 사용하면 더 좋을 것 같은데, 우선 나는 이제 막 시작하는 단계이므로, spring scheduler사용하는걸로. 1. @EnableScheduling 애노테이션 추가. Applicaion.java에 위 애노테이션 추가하고, 2. Scheduler Task를 수행할 클래스에 애노테이션 추가하기 Class에는 @Component 애노테이션을, 그리고 일정 간격으로 실행 될, 메소드에는 @Scheduled 애노테이션을 붙이면 된다. 나는 테스트용으로 5초간격으로 실행시킬 것이었으므로, fixedDelay = 5000으로. 일정 시각에 반복적으로 실행하고싶을 땐, cron으로 하.. 2022. 6. 21.
728x90