Spring
-
[Spring] WebClient 사용시 http:// 프로토콜이 https:/로 자동 변환되는 이슈Spring 2023. 4. 7. 10:54
이슈가 되었던 상황 - 스프링에서 서버간 통신을 사용 할 때 WebClient를 사용 - WebClient를 메서드를 빈에 등록할 때 baseUrl을 집어 넣지 않고 사용하는 WebClient를 사용하는 곳에서 uri에 모든 서버 주소 호출에 재활용 WebClient 메서드를 다음과 같이 빈으로 등록 @Configuration public class WebClientConfig { @Bean public WebClient webClient() { return WebClient.builder() .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) .build(); } } 빈에 등록되어 있는 WebClient 메서드 사용 @..
-
[Spring] o.h.e.jdbc.spi.SqlExceptionHelper - JDBC-90611:Specified column name was not found. - column 에러Spring 2021. 12. 8. 16:21
문제 상황 - 사용하는 DB_TABLE 에는 NAME, AGE, ADRESS, GENDER, PHONE_NUMBER 5개의 컬럼이 존재 한다. - 스프링 프로젝트에서 JPA - nativeQuery를 사용해서 필요한 column 정보만 가져오게 하였다. @Query(value = "SELECT NAME, AGE, ADRESS FROM DB_TABLE WHERE NAME = :name", nativeQuery = true) public Entity getNameAgeAdress(@Param("name") String name); - 해당 메서드를 실행 하였더니 다음과 같은 오류가 발생하였다. 16:09 ERROR o.h.e.jdbc.spi.SqlExceptionHelper - JDBC-90611:Speci..
-
[Spring Logging] Slf4j - log4j2 사용 시 기존 logback, log4j 와 충돌 에러Spring 2021. 11. 29. 14:36
문제상황: -slf4j의 구현체로 log4j를 사용하다가 최신에 아파치에서 나온 멀티 스레드 환경에서 제일 성능이 좋은 log4j2를 사용하려고 하였다. -log4j2를 사용하기 위해 gradle.build에 다음과 같은 dependency를 추가 하였다. implementation 'org.springframework.boot:spring-boot-starter-log4j2' 그랬더니 프로젝트 내에 다른 구현체 (log4j와 logback)이 충돌이 발생했다. SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/C:/Users/Min/.gradle/caches/modules-2/files-2.1/or..
-
[Spring] Logging slf4j - log4j, logback, log4j2Spring 2021. 11. 29. 14:27
- 스프링에서 로깅을 할 때 Slf4j를 가장 많이 사용한다. Slf4j는 추상화된 로킹 프레임워크로 파사드 패턴으로 이루어진 인터페이스다. 따라서 구현체가 필요하다. - 구현체로는 Log4j, Logback, Log4j2 가 있다. -log4j가 초창기에 제일 많이 사용 되었으나 15년 개발이 중지 되었고 성능상 매우 느려서 logback이 대안으로 나왔다. -logback은 Springboot 환경에서 spring-boot-starter-web 안의 spring-boot-starter-logging 에 포함 되어 있기 때문에 다른 slf4j구현체를 사용하고자 한다면 gradle build시 spring-boot-starter-logging을 exclude 시켜 주어야 한다. -log4j2는 가장 최신..
-
[Spring] Native Query 사용 시 Failed to convert from type [java.lang.Object[]] to type 에러Spring 2021. 10. 21. 16:07
문제 상황: 스프링에서 JAVA와 Tibero를 사용하는데 JPA를 사용해서 DB를 조회 할 때 처럼 Tibero에서만 지원해주는 함수를 사용하기 위해 em.createNativeQuery() 을 이용하여 native query를 사용하였다. private final EntityManager em; public FileRepositoryImpl(EntityManager em) { this.em = em; } Query nativeQuery = em.createNativeQuery("SELECT * FROM FILE_TB;") List fileEntities = nativeQuery.getResultList(); // 예시이기 때문에 tibero에서만 지원하는 함수를 사용하지 않고 간단한 native qu..
-
[Spring] JPA update query errorSpring 2021. 10. 14. 10:07
이슈 @Query(value = "UPDATE DRIVE_MST SET DEL_YN ='y' WHERE LOGICAl_ID = :logicalId", nativeQuery = true) public void deleteMeta(@Param("logicalId") String logicalId) -> 다음과 같이 업데이트 하는 nativeQuery를 넣고 메서드를 호출했다. -> 업데이트 쿼리는 result set이 반환되지 않기 때문에 반환 타입을 void로 하였다. -> 다음과 같은 에러가 발생하였다. 09:52 WARN o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: -90607, SQLState: JDBC-90607:ERRJD 09:52 ERROR o.h.e.jd..
-
[Spring] ModelMapper configuration errorsSpring 2021. 9. 30. 17:06
-ModelMapper에 대해서 자세히 포스팅을 하겠지만 ModelMapper는 EntitymodelDto 사이에 필드가 일치하지 않을 때 일치하는 필드 끼리 매칭을 하여 변환을 해주는 라이브러리이다. -필자는 이전까지는 다른 모델끼리 변화해 주는 메서드를 하나하나 만들어서 사용하고 있었다. 이번 기회에 ModelMapper 라이브러리를 도입하기로 하였다. 문제발생 스프링에서 메뉴얼대로 코드를 작성하고 실행하였는데 다음과 같은 오류가 발생하였다. ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request pro..