본문 바로가기

Backend/JAVA22

[Java] 운영 도중에 XML Parsing Error 가 발생했다! (with. NoSuchMethodError) 제목 그대로다. 운영 도중에 XML Parsing Error 가 발생했다 🙀 로컬과 개발환경, 그리고 3개월 간 운영에서 이슈없이 잘 되던 기능이었다. 그런데 어제부터 갑자기 아래와 같은 원인으로 오류가 발생하면서 기능이 멈추는 현상이 발생했다. java.lang.NoSuchMethodError: org.json.JSONTokener.(Ljava/io/Reader;) 코딩에 `갑자기` 가 없다는 것을 안다. 결국은 내가 무지 했거나 완벽하게 분석, 설계하지 못해서 발생한거다. 그럼에도 이 포스팅을 작성함으로써 나를 포함한 다른 이들에게 도움이 되었으면 한다 😇 원인은 JSONTockener 클래스가 내 라이브러리에서 중첩되어 있는 상황에서 JSONObject resultJson = XML.toJSONOb.. 2021. 8. 6.
[Java] Root(/) path 진입 시 Swagger 로 이동시키는 방법 WebMvcConfigurer 의 구현체를 만들어서 addViewController 메소드를 재정의하면 된다. @Configuration public class ServletConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("redirect:/swagger-ui.html"); } } 2021. 7. 14.
[JAVA] SHA256 암호화 Util 서비스단에서 SHA256 암호화가 필요했는데, 뭔가 너무 수동으로 짠 느낌의 메소드들만 있어서 분명 어딘가에 Util 이 있을거라 생각하고 계속 서칭하니까 나온! import org.apache.commons.codec.digest.DigestUtils; DigestUtils.sha256Hex("암호화 할 문자열"); apache 짱짱. 2021. 1. 13.
[JAVA] CURL 로 다른 API 호출하는 방법 (with. HttpClient) Java + Spring framework 에서 CURL 처럼 리턴 받을 데이터 없이 다른 API 를 호출 할 일이 생겼다. 일반 Http 통신을 하기보다는 CURL 처럼 쓕 보내보고 싶었는데, 생각만큼 소스를 가볍게 짜기엔 어려운 것 같았고 아래가 최선이었다. public void sendOtherApi(Object sendObj) { try { // POST 메소드 URL 생성 & header setting HttpClient client = HttpClientBuilder.create().build(); HttpPost postRequest = new HttpPost("http://localhost:8080/test/curlConnect"); postRequest.setHeader("Accept",.. 2020. 12. 1.
[JAVA] byte[] to File, File to MultipartFile (fin. byte[] to MultipartFile) 타 API 와 통신해서 AWS S3 에 업로드 할 일이 생겼다. MSA 에 맞춰서 다른 팀에서 S3 에 업로드하는 API 를 뚫어줬는데, 업로드 할 binary file 데이터 타입을 MultipartFile 로 만들어주셨다.. 그렇기에 내가 할 일이란 타 API 와 통신 -> byte array 겟! -> File 객체로 변환 -> MultipartFile 객체로 변환하는 것이었다. 여기서 중요했던건 ★ no disc , in memory(buff) ★ 에 초점을 맞췄다는 점이다. 왜냐면 통신해서 받은 데이터를 S3 에 업로드할건데 굳이 was 에 올릴 필요가 없었기 때문에 !! ( 사실은 일정 환경 이상에서 디렉토리 핸들링 권한이 없어서 was 에 저장 자체가 불가능했음.. ) (byte[] -> M.. 2020. 9. 9.
[JAVA] List 반복문 안에서 객체 remove (feat.ConcurrentModificationException) List 를 돌면서 조건에 부합하는 객체는 해당 List 에서 제거를 해줘야 했다. 하지만 List(Collection.....😩) 를 루프돌면서 remove 하는 것은 쉽고 간단하지 않았고 ( 테스트 도중 빈번하게 ConcurrentModificationException 요 아이와 마주했다;ㅎ) 구글링에 나오는 아래 두 가지 방법을 했지만 뭔가.. 소스 읽기도 힘들고 이중으로 돌아서 NPE 아이가 올 때도 있어서 아예 메소드를 리팩토링했다. 1. while(it.hasNext()) {} 2. for (Iterator it = List.iterator(); it.hasNext();) {} 바로 JAVA8 이상에서만 사용할 수 있는 List.removeIf() !! https://docs.oracle.co.. 2020. 8. 6.