[Jenkins] Ant Build 시 깃 소스로 덮어씌우지 않을 파일 지정하기 (feat. build.xml)
·
🚀 from error to study/Java
🔥 포스팅 계기 안트 돌리면 webapps 내 소스 파일이 모두 덮어씌워지는 게 일반적이지만예외 파일을 설정할 수 있는데 그 방법을 설명하겠따!    📍 문제 상황👉🏻 로컬에서 war을 말아 테스트 서버에 업로드 후 prepare, deploy 후 서비스 기동하니 오류가 남  👉🏻 SSL key 파일인 jks가 해당 경로에 없다는 뜻인데... 오류 경로를 보니 서버가 아닌 내 로컬 경로임👉🏻 SSL key 파일은 /opt/puppy/work/webapps/workware1/WEB-INF/classes/profile/dev/default.properties에서 설정 👉🏻 이 파일은 war 말아진 로컬 파일로 덮어씌워지면 안 되고 서버 파일을 그대로 사용해야 함26-Nov-2024 16:3..
java.lang.OutOfMemoryError: GC overhead limit exceeded 해결 방법
·
🚀 from error to study/Java
🔥 포스팅 계기 너무 화가 난 나머지 증상 캡처를 못 해 버림...하지만 VM arguments를 다시 바꿔서 에러를 또 냈다 하하 포스팅을 위해서라면    📍 Maven 빌드 중 오류 발생👉🏻 ekp.war를 로컬에서 말아서 업로드 해야 하는 곳이 있어 진행 중에 오류 발생하며 메이븐 빌드 실패가 떴음The system is out of resources.Consult the following stack trace for details.java.lang.OutOfMemoryError: GC overhead limit exceeded    📍 원인: 자바 메모리 부족👉🏻 메이븐을 빌드할 때 소스를 쭉 훑을 텐데 거기서 기본 설정값(혹은 이클립스 별도 설정값) 이상의 메모리가 필요한 듯함👉?..
An internal error occurred during: "Periodic workspace save.". Cannot parse null string 해결 방법
·
🚀 from error to study/Java
🔥 포스팅 계기 이클립스 구동하며 빌드 중 자꾸 발생하는 오류가 있어 해결법을 찾아 포스팅한다    📍 오류 발생 이유👉🏻 빌드, SVN/Git 처리 등 이클립스에서 어떤 동작을 진행하는 와중에 이클립스가 꺼질 경우 workspace가 깨졌다는 에러   📍 해결 방법👉🏻 1) 이클립스 종료 👉🏻 2) 프로젝트 폴더 경로에서 아래 경로 확인프로젝트경로\workspace\.metadata\.plugins\org.eclipse.core.resources\.projects 👉🏻 3) Servers 라는 이름의 폴더 생성 후 이클립스 재시작 (이미 존재한다면 삭제 후 재생성)   더보기더보기https://blog.naver.com/miniii_su/222045145464 [eclipse] An..
[JAVA] java.net.MalformedURLException: unknown protocol: c 오류 해결법
·
🚀 from error to study/Java
🔥 포스팅 계기 톰캣을 올릴 때 오류 발생!원인을 찾아보니 구글 연동 키 파일을 로컬 경로로 불러올 때 문제로 보였음    📍 문제 원인PRIVATE_KEY_FILE_PATH=C:/devUtil/cert/privateKey.der👉🏻 구글 연동을 위한 키 파일을 프로퍼티 파일에 위와 같이 정의해 줬었음  👉🏻 리눅스의 경우 아래와 같이 불러 줘도 문제가 없음biz/google/cert/privateKey.der 👉🏻 하지만 윈도우의 경우 대다수의 경로가 C 혹은 D 드라이브를 타기 때문에 C:나 D:로 시작함👉🏻 앞에 file:/// 이라는 prefix를 붙여 주지 않으면 C를 URL 프로토콜로 인식한다고 함    📍 해결법PRIVATE_KEY_FILE_PATH=file:///C:/d..
[Java] NullPointerException을 방지하는 Objects.equals 메서드
·
🚀 from error to study/Java
🔥 포스팅 계기Java 로직을 구현하다 보면 NullPointerException을 자주 볼 수 있습니다애초에 문자를 넣고 초기화할 수도 있겠지만 쿼리에서 param != null 같은 옵션을 사용할 수도 있고운영 단계에서는 이미 만들어진 데이터를 가공해서 써야 하기 때문에 매번 null 체크를 해야 하는 번거로움이 있었습니다.그런데  귤에 붙어 있는 하얀 거 이름은.. 아니아니Null 체크가 필요 없는 equals()가 있다면 어떨까요?    📍 equals()와 Objects.equlas()의 차이👉🏻 문자열을 비교할 때 사용하는 equals() 👉🏻 하지만 아래 예시처럼 a가 null일 경우, 에러가 발생하기 때문에 equals()를 사용할 때는 null 예외 처리가 필요함public c..
[Java] Object의 key 중복 제거 - DeduplicationUtils
·
🚀 from error to study/Java
List로 받아온 값 중 특정 key값을 기준으로 중복 삭제 기능을 할 수 있는 유용한 코드 [사용법] 1) DeduplicationUtils.java 파일 생성 2) DeduplicationUtils.java 파일에 package 경로 적용 3) 기존 리스트 조회 4) 기존 리스트와 같은 객체를 사용하는 리스트 생성 5) 4의 새로운 리스트에 아래 적용법 사용 List newList = DeduplicationUtils.deduplication(기존리스트이름, 객체명::get키값); package 패키지 경로; import java.util.List; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util..
[java] ArrayList 0번째 인덱스에 새로운 값 넣고 한 칸씩 미는 법
·
🚀 from error to study/Java
이미 존재하는 ArrayList가 있을 때 해당 list의 0번째 인덱스에 새로운 값을 넣고 기존 값들은 1칸씩 뒤로 밀고 싶을 때 사용하면 좋은 방법 가장 중요한 포인트는 기존 리스트를 clear 후에 addAll을 해 줘야 새로운 리스트 값으로 제대로 복사된다는 점이다 1) 기존 ArrayList 구조 2) 원하는 ArrayList 구조 '통합검색'을 기존 기스트의 0번째 인덱스에 넣고 싶음 3) 방법 확인 1) 기존 리스트와 동일한 구조의 리스트를 새로 만든다 2) 새로운 리스트에 원하는 데이터를 add 한다 3) 새로운 리스트에 기존 데이터를 addAll 한다 4) 기존 리스트를 clear 한다 5) 기존 리스트에 새로운 리스트를 addAll 한다 // 기존 리스트 ArrayList list = ..
[Spring] form 태그를 submit 했을 때 Controller에서 alert창 띄우게끔 유도하는 2가지 방법
·
🚀 from error to study/Java
💡 현재 상황 보통 jsp에서 controller로 값을 넘길 때 아래 2가지 방법을 썼다 1. ajax 사용하기 2. form 태그를 submit 하기 1번 방법(ajax) 사용 시 장점 👉🏻 success 속성을 이용해 function(매개변수) {} 로 손쉽게 controller의 값을 받아와 jsp에서 조건 검사를 할 수 있음 즉, jsp에서 alert창을 띄울 때 용이함 단점 👉🏻 jsp에서 controller로 값을 넘길 때 data 속성에 키:밸류 값을 넘겨 줘야 함 즉, $("선택자").find("선택자").val()과 같이 넘길 요소의 값을 한 번 더 뽑아 줘야 하는 번거로움이 있음 2번 방법(form 태그 submit) 사용 시 장점 👉🏻 jsp에서 controller로 값을 넘길 때 ..
[Bootstrap] 부트스트랩 모달 열었을 때 커서 깜빡임 속성 [= focus()] 주기
·
🚀 from error to study/Java
💡 현재 상황 코멘트를 수정하기 위해 부트스트랩을 사용해 모달창을 띄웠음 그냥 띄워 주기만 하니까 안내창이랑 별반 다르게 보이지 않아 코멘트 수정 내용을 입력하는 곳에 커서 깜빡임 효과를 주고 싶음 근데 onclick을 사용해 모달이 띄워진 시점에 $("#모달아이디값").find("#textarea아이디값").focus() 을 주니 먹히지 않음 📍 해결 방법 부트스트랩 모달이 사용자에게 보여질 때를 집어 이벤트를 주면 됨 모달이 열리고 나서 자동으로 실행되는 이벤트 속성인 shown.bs.modal을 이용하여 해결함 이벤트 타입 설명 show.bs.modal 모달이 열릴 때 바로 실행되는 이벤트 shown.bs.modal 모달이 열리고 나서(열림이 끝났을 때) 실행되는 이벤트 hide.bs.modal 모..
java.lang.ClassCastException: java.util.ArrayList cannot be cast to VO 객체 경로
·
🚀 from error to study/Java
💡 현재 상황 해당 컨텐츠에 대한 내 코멘트를 뽑아 화면에 뿌려 줘야 하는데 해당 쿼리를 통해 한 화면당 뽑을 리뷰는 언제나 1개뿐! 그래서 ArrayList에서 Review로 자료형 변환해 줬더니 ClassCastException이 뜸 📍 해결 방법 Dao의 selectList도 selectOne으로 바꿔 줘야 함 여태까지의 화면에서는 3개 이상의 리뷰를 뽑았기 때문에 ArrayList를 썼는데 해당 화면에서는 1개의 리뷰만 뽑기 때문에 ArrayList를 쓰는 것은 데이터 소모를 일으킨다고 혼났음 (핑빈에게) Controller, Service, ServiceImpl, Dao의 ArrayList 자료형을 모두 Review로 바꿔 줬더니 위의 오류 뜸 selectOne은 1개의 행만 뽑아서 오는 메소드..