본문 바로가기

Language/Java8

[Java] java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter:sun/io/ByteToCharConverter 에러 해결 방법 ▏상황 내가 맡고있는 업체에서, 우리 회사 솔루션을 사용하던 중 에러가 발생하여 문의를 준 것이 바로 java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter:sun/io/ByteToCharConverter 이다. 에러 발생 환경을 간단히 설명하자면, 리눅스 환경에서 우리 솔루션을 사용하여 db에 연결하고 select 문을 테스트 후 rollback 하는 것인데, 그 과정에서 에러가 발생한 것이다. 에러를 찾아보니, 자바 버전 7.2.x 버전 이후 부터는 ByteToCharConverter.class 가 빠져있는 것이다. ▏에러 로그 java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter:sun/io/Byt.. 2022. 7. 28.
[JAVA] Failed to create folder. java.io.IOException : 그런 파일이나 디렉터리가 없습니다. 에러 해결 ▏상황 회사에서 내가 맡고있는 업체에서 아래와 같은 에러가 나 처리해달라는 문의가 왔다. Failed to create folder. java.io.IOException ▏에러 로그 Failed to create folder. java.io.IOException : 그런 파일이나 디렉터리가 없습니다. at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java -2) at java.io.File.createNewFile(File.java:1012) ▏해결방법 에러 로그를 보면 알 수 있듯이, 폴더 생성에 실패한 것이다. 이유는 크게 두가지가 있다. 1. 코드 상의 오류 말 그대로 코드를 잘못 짰기 때문에 파일 생성을 할 수 없는것이다. 예를들어.. 2022. 7. 1.
[JAVA] SMTP Mail 기능 구현 : javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted 에러 해결 ▏에러 로그 Mail 기능 구현 하던 중 아래와 같은 에러가 발생했다. javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials t22-20020a17090ae51600b001ecaa74f8dasm4309868pjy.11 - gsmtp at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:648) ▏원인 찾아보니 내가 보내고자 하는 메일 계정에 대해 "보안 수준이 낮은 앱 액세스" 가 .. 2022. 6. 23.
[JAVA] SMTP Mail 기능 구현 : javax.mail.MessagingException: Could not convert socket to TLS 에러 처리 ▏에러 로그 spring boot 로 간단한 프로젝트를 하던 중, 메일 보내는 과정에서 아래와 같은 에러가 발생했다. javax.mail.MessagingException: Could not convert socket to TLS; nested exception is: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:1652) ▏해결방법 TLS(Transport Layer Security) 의 버전이 안맞아서 생기는 오류다. ( 참.. 2022. 6. 23.
[Java] 엔터(Enter) / 개행 / 공백 replace 처리하기 ▏목적 ◦ 엔터(Enter) / 개행 / 공백 replace 처리하기 ▏시작하는 말 Jsp 에서 Controller 로 값을 전달하거나, DB에 저장할 때 엔터처리가 안되는 경우가 발생한다. 이는 각각의 엔터 인식 방법이 달라서 발생하는 것이다. ▏replace 처리하기 요점만 말하자면, \n 을 로 / 을 \n 으로 변환해주면 되는것이다. ◦ 값 저장 할 경우 String text = request.getParameter("text"); text.replace("\n"," ") // 안될경우 > replace("\r\n", " ") ◦ 저장된 값 불러올 경우 String text = res.getString("text"); text.replace(" ", "\n") // 안될경우 > replace(" .. 2022. 6. 22.
Class 파일 jdk(자바) 버전 확인 및 major 버전에 따른 java버전 확인 ▏목적 ◦ Class 파일 jdk버전 확인 ◦ major 버전에 따른 jdk버전 확인 ▏시작하는 말 업체에서 클래스 파일을 받아 디컴파일 후, 수정 전달하는 일을 할 때가 있다. 이때, 내가 수정한 파일의 jdk 버전과 업체 쪽 버전의 차이 때문에 에러가 발생할 수 있다. 자바 버전을 물어봐도 되지만, 그럴 수 없는 경우에 직접 찾는 방법을 오늘 공유하고자 한다. ▏Class 파일 자바 버전 확인 1. cmd 창을 열어 확인하고자 하는 class 파일 이 있는 경로로 들어간다. 2. javap -verbose {Class명} | find "version" 이때, ".Class" 는 써도 되고 안 써도 된다. ▏major version 번호 Java 버전 변환 확인 45 : jdk1.1 46 : jdk1... 2022. 6. 16.
[JAVA] java.util.regex.PatternSyntaxException: Unclosed group near index 1 에러 해결 ▏에러 로그 java.util.regex.PatternSyntaxException: Unclosed group near index 1 java replaceAll 사용시 위와 같은 에러가 날 때가 있다. ▏상황 이 오류는 괄호를 치환 하고자 할 때 발생하는 오류다. 치환하려고 작성한 문자 괄호를 문자로 인식하지 않고, 하나의 수식으로 인식하기 때문에 Unclosed group near index 이런 에러를 뱉는것이다. ▏해결방법 따라서, 소괄호, 중괄호, 대괄호, ^ 는 앞에 \\를 붙여주어야한다. 나의 경우 문자열에 있는 소괄호를 뒤집어야 했다. ex ) "(" -> ")" / ")" -> "(" 처음에는 나도 이 규칙을 몰라 에러가 났다. u = u.replaceAll("(", "1"); u = u.. 2022. 5. 2.
JPA란 무엇인가? JPA를 제대로 이해하기 위해서는 ORM의 개념을 먼저 이해해야 한다. ORM은 객체와 관계형 데이터베이스를 자동으로 매핑(연결)해주는 역할이다. 자세한 내용은 ORM 포스트에서 보면 된다. JPA란 Java Persistence API로, 프로그램을 종료한 후에도 데이터가 남아있는, 데이터 지속성 기능을 제공한다. java 기반의 ORM을 사용하기 위한 인터페이스를 모아둔 것으로, 가장 많이 사용하는 구현체에는 Hibernate 가 있다. 내가 작년 2020년 말에 airbnb 클론코딩 프로젝트를 만들었다. 그 과정에서 숙소, 회원 등의 정보들을 Mybatis를 사용하여서 많은 VO, DAO등을 반복적으로 만들었고, SQL문들을 직접 작성하면서 많은 문법적인 이슈들이 발생했다. public class .. 2021. 5. 2.
반응형