본문 바로가기

개발/Java

(17)
[Tomcat] 웹어플리케이션(WAR) 구동시 SQLServer JDBC memory leak 에러발생 톰캣 구동시 SQLServer JDBC memory leak 에러가 발생하면서 서비스 구동실패 환경정보 윈도우 서버 2012 R2 JDK 11 Tomcat 8.5 증상 catalina.log 확인결과 SQLServer JDBC memory leak 에러가 발생하면서 톰캣 서비스 구동이 실패하는 증상발생 09:34:42.476 INFO [Thread-12] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"] 09:34:42.535 INFO [Thread-12] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"] 09:..
[SQLServer] 최신 JDBC(10.2.0) 사용시 SSL(Secure Sockets Layer) 암호화 에러발생 SQL Server JDBC 10.2.0 사용하여 JAVA Application 구동시 SSL 관련 에러가 발생한다. JDBC Maven Dependency com.microsoft.sqlserver mssql-jdbc 10.2.0.jre11 에러내용 [2022-02-18 17:02:26.790] [INFO ] [restartedMain] AppStarter:59 - Started AppStarter in 12.229 seconds (JVM running for 13.207) [2022-02-18 17:02:31.032] [INFO ] [http-nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]:173 - Initializing Spring DispatcherS..
SpringBoot 시작시 com.mysql.jdbc.Driver. This is deprecated 경고메세지 발생 SpringBoot Application 실행시 'com.mysql.jdbc.Driver'. This is deprecated 경고 메세지가 발생 Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary. 2022-02-10 14:10:22.713 INFO 22372 --- [main] kr.co.app.Application : Starting Applicatio..
Base64.encodeBase64String 메서드 - Gradle 빌드에러 apache commons-codec-1.11 라이브러리에서 제공하는 Base64.encodeBase64String 메서드를 사용하면 로컬환경, STS에서는 문제없이 구동이 되었으나 Gradle compileJava 시 에러가 발생 Working Directory: C:\Users\developer\git\app Gradle user home: C:\Users\developer\.gradle Gradle Distribution: Local installation at C:\Develop\Gradle\gradle-5.5.1 Gradle Version: 5.5.1 Java Home: C:\Develop\JDK\jdk-11.0.2 JVM Arguments: None Program Arguments: None ..
Apache Log4j 취약점 발견(CVE-2021-44228) Log4j 는 자바어플리케이션을 개발할때 로그를 기록해주는 라이브러리로 자바진영에서는 거의 표준처럼 사용되어 왔었다. 당연히 SpringBoot 프레임워크에서도 기본 로깅 라이브러리로 Log4j가 설정되어 있다. (정확히는 Log4j 2.x 버전이다.) 이번에 발견된 취약점은 자바의 JNDI 기능을 이용하여 데이터 탈취 및 원격으로 악성코드를 실행이 가능하다는 점이다. (위험도가 10점인 이유가 있다.;;;) 나무위키의 자세한 기록 https://namu.wiki/w/Log4j%20%EB%B3%B4%EC%95%88%20%EC%B7%A8%EC%95%BD%EC%A0%90%20%EC%82%AC%ED%83%9C?from=2021%EB%85%84%20%EC%9E%90%EB%B0%94%20%EB%B3%B4%EC%9..
윈도우 cmd로 자바프로그램 실행시 경고메세지 발생-Unable to get Charset 'cp65001' for property 'sun.stdout.encoding' 윈도우 명령프롬프트 cmd로 자바프로그램을 실행할 시 한글이 깨짐으로 인하여 chcp 65001 옵션을 사용하면 sun.stdout.encoding 경고메세지가 출력된다. Active code page: 65001 Unable to get Charset 'cp65001' for property 'sun.stdout.encoding', using default UTF-8 and continuing. 자바에서 표준출력 인코딩이 cp65001이 존재하지 않아 발생하는 경고메세지로 추정된다. java 명령어를 실행할때 -Dsun.stdout.encoding=UTF-8 옵션을 추가하면 해당 경고메세지가 출력되지 않는다. app.cmd 내용 @echo off rem ---------------------------..
Maven을 이용한 JAVA 프로젝트 생성하기(Eclipse/STS) Maven 을 이용하여 JAVA 프로젝트를 생성하여 자바 어플리케이션을 실행해보자. 개발환경 JAVA 11 STS 4.5.1 Maven 3.6.3 1. New 프로젝트 상단메뉴 > File > New > Other... 2. Maven 프로젝트 선택 Maven > Maven > Project 선택 후 Next 3. Maven 기본설정 Create a simple project 를 체크하고 Location에 생성할 프로젝트의 폴더경로를 설정해주자. (아키타입(archetype)은 일종의 메이븐 템플릿이므로 메이븐이 익숙해 지면 사용해 보도록 하자.) 4. Maven 상세설정 5. 생성 완료된 Maven 프로젝트 pom.xml 은 maven 을 설정하는 설정파일이다. (자바 패키지를 추가하거나 버전을 변경할..
JAVA SQLWarning 을 이용한 postgresql function 의 raise notice 출력문구 조회방법 postgresql function 을 개발하고 실행하게 되면 function 내에서 raise 명령어를 이용하여 파라미터값 검증, 특정 데이터의 건수조회를 출력하게 될 것이다. function 실행시 pglog 를 확인하는 방법이 있지만 터미널로 접속 후 일일히 로깅을 확인하여야 한다. (불편하다.;;;) 자바에서는 postgresql function 을 실행할때 SQLWarning(JDBC) 클래스를 사용하여 raise notice 의 문구를 가져올 수가 있다. 개발/실행환경 Postgresql 13.x / dbeaver JDK 11 / Eclipse 1. 테스트용 function 개발 create or replace function public.fn_sqlwarning_test(p_count int..