반응형

에러 내용

Exception Type - I/O error on POST request for "주소": 주소; nested exception is java.net.UnknownHostException: 주소

=> 해당 호스트 정보 / DNS 등을 찾지 못해 발생

 

상세 내용

몇달동안 실제 운영서버에서 정상적으로 해당 api를 호출되다가, 간헐적으로 해당 에러가 나면서 요청 실패가 나는 상황
(
이틀간 수치가 급증하여, 조치 필요)

로컬에서도 같은 현상 발생 (간헐적으로 실패)

 

 

예상 원인

Java 애플리케이션에서 유효한 DNS정보를 응답받지 못하는 경우

=> Google DNS 서버가 해당 도메인을 제대로 인식하지 못 하거나, 문제가 잠시 생긴것으로 추측

 

해결 ( 1)

1. Hosts 파일 변경

DNS 되는것으로, Hosts에서 ip-DNS 등록해서 사용
=> 로컬에서도 손쉽게 적용가능하고, 재시작(리부팅)이 필요 없음. 단, 상대의 IP가 바뀌면 수동으로 다시 맵핑 시켜줘야 함

방법
vi /etc/hosts
내용 입력(ip,DNS) 127.0.0.1       localhost
(참고 :  ping 도메인 => 실제 ip 조회 가능)

 

2. DNS 설정 변경

주/보조가 모두 구글 서버라 하나를 다른 DNS Server를 바라보도록 변경해서 테스트해본 결과, 정상적으로 요청
=>  vi /etc/resolv.conf (운영체제 / 버전에 따라 다를수 있지만, IP or DNS Server 설정 부분을 찾아서 수정)

DNS1 - 8.8.8.8(Google) -> 1.1.1.1(Cloudflare)
DNS2 - 8.8.4.4(Google) -> 8.8.8.8 (Google)

반응형
반응형

Java에서 Array를 List로 바꾸는 방법은 많겠지만, 가장 간단한 방법들을 몇 개 소개해드리겠습니다.

1. Arrays 사용 

복사하려는 array의 type이 기본형이라면 가장 간편한 방법으로, 기본 함수 사용
(단,  Integer가 아닌 int형이라면 사용이 불가능)

2. Collection 사용

Collections를 사용하여 array를 복사하는 방법, 하지만 복사하려는 array의 type이 기본형이 아니라면 사용 불가능

3. for 사용

가장 기본적인 방법으로 for/stream등을 이용해서 array를 하나씩 읽어서 list에 새로 넣는 방법
번거로워 보이지만, 형변등 처리가 가능하므로 int형을 Integer로 바꿔서 처리할 수 있다.

      // 1 - Arrays 활용
      List<Integer> list = Arrays.asList(array);          

      // 2 - Collection 활용
      List<Integer> list = new ArrayList<Integer>();
      Collections.addAll(list, array);

      // 3 - for each 활용
      List<Integer> list = new ArrayList<Integer>();
      for(Integer text:array) {
         list.add(text);
      }

 

 

 

 

 

java array to list

how to convert array to list

반응형
반응형

Java에서 HashMap에 각각 a,b,c,d 순서대로 넣는다고 해서

a,b,c,d 순서대로 접근할 수는 없다

 

대신 순서대로 사용하려면 LinkedHashMap를 사용하자.

=> 순서가 있는 MAP

반응형

+ Recent posts