JAVA·Spring 10

@Transactional Checked Exception 사용시 Commit 되는 이유

■ Java Exception 구성Java에서 Exception(Checked)를 상속한 RuntimeException(Unchecked) 계열들이 파생된다.* Java에서 설계적 관점 참고 글https://velog.io/@eastperson/Java%EC%9D%98-Checked-Exception%EC%9D%80-%EC%8B%A4%EC%88%98%EB%8B%A4-83omm70j ■ Spring 기본설정스프링 문서에 보면 Transaction의 기본 동작 설정은 Checked Exception(RuntimeException 계열 이외의 Exception)에 대해서 Comiit처리를 기본 설정값으로 안내하고 있다. (중요)https://docs.spring.io/spring-framework/refere..

JAVA·Spring 2024.09.04

JDK9 이상에서 Module 문제, The package org.w3c.dom is accessible from more than one module: <unnamed>, java.xml

■ JDK9 이상에서 Module 방식에 의한 라이브러리 인식 문제JDK9에서 Module이라는 개념이 도입되어 다음과 같은 오류가 발생할수 있다.The package org.w3c.dom is accessible from more than one module: , java.xml  ■ 대응 방법 #1 (충돌 라이브러리 제거)1) JDK의 해당 모듈과 충돌을 일으키는 jar 라이브러리를 찾아야 한다.Linux 또는 macOS에서 다음 명령으로 대상 jar 라이브러리르 찾는다.find ./ -type f -name '*.jar' | while read LINE; do echo $LINE;jar tvf $LINE | grep org.w3c.dom;done 2) 대상이 되는 라이브러리가 발견되면 운영 프로젝트..

JAVA·Spring 2024.08.01

GU(GraalVm Updater) 없는 경우 수동으로 Python(GraalPy) 추가하기

■ GraalVM 버전 체계GraalVM이 현재 JDK 기준으로 배포되고 있으며별도의 GraalVM 버전을 확인할수 있다.Open JDK : 17.0.6GraalVM : 22.3.1 (현재 JDK 17, JDK 21, JDK 22 버전이 배포 되고 있음)$ java -versionopenjdk version "17.0.6" 2023-01-17OpenJDK Runtime Environment GraalVM CE 22.3.1 (build 17.0.6+10-jvmci-22.3-b13)OpenJDK 64-Bit Server VM GraalVM CE 22.3.1 (build 17.0.6+10-jvmci-22.3-b13, mixed mode, sharing) ■ GU(GraalVm Updater) 사용하여 설치된 ..

JAVA·Spring 2024.05.24

IntelliJ에서 Lombok 적용후 cannot find symbol symbol: class __

IntelliJ에서 Lombok 적용하고 프로젝트 가져오면 다음과 같은 오류가 발생한다. Error:(20, 43) java: cannot find symbol symbol: class __ 오류가 나는 부분은 다음과 같다. @__ 부분에서 오류가 발생한다. @Log4j2 @Service @RequiredArgsConstructor(onConstructor = @__(@Inject)) public class HttpService { File > Settings ... 으로 이동한다. 좌측메뉴에서 Plugins 선택한후 Installed 탭을 확인해 보면 최근 IntelliJ 버전에는 기본적으로 Lombok 플러그인이 설치되기 때문에 검색에서 안나온다고 헤메는 삽질을 하지 않기를 바란다. pom.xml에서..

JAVA·Spring 2023.05.23

Spring Batch에서 ItemReadListener가 걸리지 않을 때

다음과 같은 상태에서 ItemReadListener가 걸리지 않았다. @Bean public Step step1() throws Exception { return stepBuilderFactory.get("step1") .chunk(100) .reader(pagingItemReader()) //.reader(customItemReader()) .listener(new CustomReadListener()) .processor((ItemProcessor) item -> item) .listener(new CustomProcessListener()) .writer(customItemWriter()) .listener(new CustomWriteListener()) .taskExecutor(taskExecut..

JAVA·Spring 2023.04.03

Kakao Login API Bad client credentials(KOE010) 해결하기

2018년에 작성한 Kakao Login API 샘플을 오랜만에 구동했더니 다음과 같은 오류가 발생했다. { "error": "invalid_client", "error_description": "Bad client credentials", "error_code": "KOE010" } Postman으로 확인했을때 다음과 같다. 아마도 API에서 응답하는 규격이 그새 변경된것으로 추측이 된다. Postman으로 확인결과 다음 2가지 방법으로 해결이 가능했다. 1) Get 방식에서 파라미터 전달 2) POST 방식에서 x-www-form-urlencoded로 전달 * 참고자료 https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api Kakao Deve..

JAVA·Spring 2022.08.29

maven Repository - Failed to transfer ~~~~ Central 501 HTTPS Required

maven Repository 정책 변경으로 HTTP를 사용할수 없고 HTTPS를 사용하여야 한다. 2020년1월15일부로 변경이 된듯 하다. * 오류 메시지 내용 Failed to transfer ~~~~ Central 501 HTTPS Required 메시지 발생 * Maven Repository URL 정책 변경에 대해 다음 링크 참조 https://support.sonatype.com/hc/en-us/articles/360041287334-Central-501-HTTPS-Required 해결방법은 pom.xml을 열어서 URL을 HTTP => HTTPS로 변경하고 태그 설정을 추가한다. http://repo1.maven.org/maven2/ 다음과 같이 센트럴 레포지토리 URL을 HTTPS로 변경..

JAVA·Spring 2020.02.03

특정 포트 점유한 프로그램 찾고 실행중인 Java 어플 죽이기 - Windows (Kill Process)

윈도우즈의 경우 실행중인 java 어플을 다음 명령으로 죽일수 있습니다. * 프로그램 명으로 죽이기 C:\>taskkill /f /im javaw.exe C:\>taskkill /f /im java.exe * Pid 명으로 죽이기 C:\>taskkill /f /pid 3693 C:\eGovFrame-3.6.0\bin\jdk1.8.0_45\bin>taskkill /f /im javaw.exe 성공: 프로세스 "javaw.exe"(PID 22732)이(가) 종료되었습니다. * 특정 포트 사용여부 찾기 C:\>netstat -aon | find /i "listening" | find "8080" * 특정 포트 점유한 프로그램 찾기 C:\>for /f "tokens=5" %x in ('netstat -aon ^..

JAVA·Spring 2019.03.12

Eclipse Neon에서 빈설정 xml파일에서 실제는 정상인데 오류X표시가 보여질때 처리방법

이클립스 네온버전을 사용중에 xml 빈설정파일에서 No setter found for property 'dataSource' in class 'egovframework.com.cmm~~~ 블라블라 메시지가 나온다. 오잉? maven repository가 제대로 내려오지 않았나? 확인을 해봤습니다. 해당 라이브러리 제대로 내려왔고 그 라이브러리에 setter도 분명히 있네요. 실제 구동을 시켜보면 정상적으로 WAS가 기동이 되고 서비스도 문제가 없었습니다. 결국 이클립스가 뻥치고 있다고 결론이 나오네요. ^^; 물론 그냥 놔두고 쓰면 되지만 빨간색 X표시가 보기 싫어서 여러가지 방법을 찾다가 내용을 CTRL+X로 싹지우고 저장한 다음 CTRL+V로 붙여넣기를 시도 합니다. 다시 붙여넣기 하면 다음과 같이 ..

JAVA·Spring 2018.11.09

전자정부 egov Spring batch에서 MyBatisPagingItemReader사용시 주의점 (무한루프 방지)

egov Spring batch에서 PagingItemReader사용시 주의점인데요. 쿼리에 페이징관련 설정이 추가되지 않으면 한참동안 무한에 가깝게 반복이 되게 되니 주의가 필요합니다. query쪽 xml에서 페이징관련 맵핑 변수를 설정해야 합니다. 마이바티스의경우 #{_page} , #{_pagesize} , #{_skiprows}를 설정해 주어야 합니다. 참고로 VO에 정의가 없어도 자동으로 주입이 됩니다. * HSQL (메모리 DB의 경우) select EMP_NO, EMP_NAME, JOB, MGR, HIRE_DATE, SAL, COMM, DEPT_NO from EMP where 1 = 1 LIMIT #{_pagesize} OFFSET #{_skiprows} -- HSQL LIMIT OFFSET..

JAVA·Spring 2017.11.28