본문 바로가기

ERROR FIX17

LifecycleException: 구성요소 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]을(를) 시작하지 못했습니다 심각: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: 구성요소 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]을(를) 시작하지 못했습니다. at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBas.. 2024. 3. 4.
@Value가 null 값으로 들어올때 회사에서 개발 중스프링의 @Value 어노테이션으로 property에 저장된 값을 가져오려고 했다.그러나 null pointer Exception이 발생하면서해당 저장 값을 가져오지 못하고 있었다. 원인은 스프링은 static 필드에 @Value 를 지원하지 않기 때문이다.static 필드는 jvm 클래스 로더에 의해 Class Area(=Static, Method)에 런타임에 저장된다.이 시점은 스프링 컨테이너인 ApplicationContext가 로드되기 전이므로,static 필드는 ApplicationContext에 의존적인 @Value가 동작하지 않는다고 한다. (@Autowired도 동일)  해결방법setter 수정자 메서드를 사용하여 static 변수에 property 값을 주입할 수 있다. .. 2024. 1. 15.
mvn compile, package, install 차이 1. mvn compile 목적 : 프로젝트의 소스 코드를 컴파일 라이프사이클 단계 : compile은 Maven 빌드 라이프사이클의 한 단계로, 프로젝트의 소스 코드를 컴파일하는 역할을 합니다. 출력 : 컴파일된 클래스는 기본적으로 target/classes 디렉토리에 위치합니다. 2. mvn package 목적 : 컴파일된 코드를 JAR(Java Archive) 또는 WAR(Web Archive)와 같은 배포 가능한 형식으로 패키징합니다. 라이프사이클 단계 : package는 Maven 빌드 라이프사이클의 한 단계이며, compile 단계를 포함하고 패키징 단계를 추가합니다. 출력 : 패키지된 아티팩트(예: JAR, WAR)는 기본적으로 target 디렉토리에 생성됩니다. 3. mvn install .. 2023. 11. 18.
Caused by: java.io.FileNotFoundException: class path resource 에러 Caused by: java.io.FileNotFoundException: class path resource [application.yml] cannot be opened because it does not exist. 이런 에러가 발생하였다. 이때 내 폴더 구조는 application-dev.yml application-prod.yml application-local.yml 이런 식으로 구분되어 있고, properties에서 각 환경 설정을 가져와서 넣는 식이었는데 자꾸 resource를 찾지 못하는 에러가 발생하였다. mvn clean mvn package 를 했더니 해결되었다. 참고) https://stackoverflow.com/questions/55687518/caused-by-java-io-.. 2023. 11. 11.
스프링 CORS 처리 (+스프링 클라우드 게이트웨이) CORS ( Cross-Origin Resource Sharing ) 란 다른 출처간의 같은 리소스를 공유할때 일어나는 현상이다. 회사 업무로 U**서버 CORS 처리가 필요하여 작업을 진행하였다. 첫 번째는 먼저 U** 서버에 CORS 처리를 진행하였다. 스프링부트에서는 @CrossOringin 어노테이션을 이용하여 쉽게 CORS 처리가 가능하다. 하지만 이 어노테이션은 스프링 4.2 버전부터 지원하고 U** 서버는 스프링 4.0 버전이라 다른 방법을 사용하였다. WebMvcConfigure.java 파일에 직접 설정하여 해결하였다. 이 작업 후에는 CORS 처리가 잘 될것이라고 생각하였으나, 그래도 동일한 CORS 문제가 발생하였다. 그래서 원인을 찾아보던 중, 우리 회사의 모든 신호는 게이트웨이를 .. 2023. 11. 5.
AmazonS3Client - No content length specified for stream data. 경고 WARN AmazonS3Client - No content length specified for stream data. Stream contents will be buffered in memory and could result in out of memory errors. 인텔리제이에서 위 WARN이 발생하였는데 이 경고는 아래 내용이다. ContentLength가 지정되지 않았기 때문에 데이터 스트림이 메모리에 버퍼링될 것입니다. 이로 인해 메모리 부족 오류가 발생할 수 있습니다. 메모리에 큰 양의 데이터를 버퍼링하면 리소스를 상당히 소모할 수 있습니다. 회사) 백오피스 개발을 할 때 메모리 부족 오류가 발생하였는지 웹페이지가 에러가 발생했고, 아래처럼 수정하였더니 해결되었다. WARN이 발생한 기존 코드) Ob.. 2023. 8. 21.