본문 바로가기
반응형

분류 전체보기78

Cannot find DTD ... log4j 에러 로그 관련하여 더 보고 싶은 정보가 있어서 level 조정하려고 log4j.xml 파일을 들어가봤더니 난데없이 'Cannot find DTD ... log4j' 와 같은 에러 발생! log4j도 정상적으로 돌아가고 아무 문제는 없다고는 하나 빨간 줄은 절대 못넘어가는 나란 사람은 해결하려고 구글링 시작 일단 문제는 해당 log4j를 경로에서 찾을 수 없다는 에러이고 그래서 상단에서 // 이와 같이 되어있어서 에러가 발생했을 것 // "log4j.dtd" 부분에 경로를 잘 찾을 수 있도록 실제 apache에서 제공하는 경로를 입력 // https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd // 결론적으로 아.. 2024. 2. 2.
Property 파일 유니코드로 보이는 현상 및 'downloading from external resources is disabled' 에러 회사에서 다른 곳에 업무 지원을 나와 새 프로젝트를 STS를 사용하여 기존 프로젝트를 받아와 시작하려는데 두가지 문제가 발생했다. 일단 Spring에서 사용하는 message의 property 파일의 한글이 모두 유니코드로 보이는 현상. 대부분은 preference 설정이나 marketplace에서 플러그인 등을 설치해주면 해결이 된다고 하나 그 중 아무것도 해결이 안되었다. 한참 구글링 하고 난뒤에 해결책을 드디어 찾음! 간단히 말해 많은 블로그에서 제공하는 convert해줄 수 있는 jar파일을 받을 수 있는 링크가 실제 들어가보면 더이상 운영이 안되거나 불안정한 곳이었고 그래서 파일을 직접 다운 받아 직접 해당 path에 넣어주는 방식으로 해결하였다. 위 두개 파일을 받은 뒤 해당 workspace.. 2024. 2. 2.
실시간 알림 기능을 구현하기 위한 고려 일단 개인적으로 진행하는 프로젝트에서 실시간 알림 기능이 필요하여 사용할 기술, 라이브러리를 조사해 보았다. 언뜻 주워들은거로는 웹소켓을 사용하면 될거라 막연하게 생각하고 있었는데 웹소켓은 일반적으로 클라이언트와 서버 간 양방향 통신이 필요할때 많이 사용한다. 하지만 내가 구현중인 기능에는 서버 쪽에서 업데이트가 일어날 경우에만 알림을 띄워주고 클라이언트에서는 이에 반대하는 처리가 없기 때문에 웹소켓은 맞지 않겠다 생각했다. 물론 웹소켓은 일단 사용하기 매우 복잡하기도 하며 고려해야 할 사항이 많다고 하길래 약간 겁먹은 것도 있음... 그래서 SSE(Server Sent Event)가 단방향에 알림 기능에는 최적이고 비교적 구현도 간단한 편인것 같아 적합하다 생각했었는데 인터넷 익스플로러나 오래된 버전의.. 2024. 1. 31.
문자열 비교 - Equals() 와 == 연산자의 차이 업무 중에 문자열 비교를 통하여 처리해야 하는 로직이 있었는데 잘 동작 하다가 어느 순간 해당 로직 안에서 무한 루프로... 때문에 DB에서 해당 테이블에 락 걸리고 난리도 아니였다. 원인을 찾아보는데 Javascript 로 열나게 처리하다가 무심결에 컨트롤러에서 똑같이 부등호로 문자열을 비교하는 코드를 집어넣었더니 해당 로직이 문자열 비교를 하지 못하게 되고 그러다 보니 내가 구현한 로직의 특성상 무한루프를 돌게 되는 것이였다. DB에서 받아온 값을 그냥 String으로 변환해서 사용하는 것이였고 때문에 결국 문제가 될 코드였다. 리터럴을 이용할 시에는 String Pool에 저장이 되고 new 연산자를 이용할 시에는 Heap 내부에 저장이 된다. 이때 == 연산자는 문자열이 저장된 주소를 비교하게 되.. 2024. 1. 9.
반응형