반응형
JBoss EAP 에러 로그에서 아래와 같이 Unexpected character (<) at position 0 에러가 발생하였습니다.
12:34:56,789 ERROR [main.service.impl.MainServiceImpl] (org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-3) error ocurred!: Unexpected character (<) at position 0.
at org.json.simple.parser.Yylex.yylex(Yylex.java:610) [json-simple-1.1.1.jar:]
at org.json.simple.parserJSONParser.nextToken(JSONParser.java:269) [json-simple-1.1.1.jar:]
at org.json.simple.parserJSONParser.parse(JSONParser.java:118) [json-simple-1.1.1.jar:]
at org.json.simple.parserJSONParser.parse(JSONParser.java:81) [json-simple-1.1.1.jar:]
at org.json.simple.parserJSONParser.parse(JSONParser.java:75) [json-simple-1.1.1.jar:]
at main.service.impl.MainServiceImpl.weatherBatch(MainServiceImpl.java:155) [classes:]
at sun.reflect.GeneratedMethodAccessor289.invoke(Unknown Source) [:1.9.0_212]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_212]
... 생략 ...
해당 에러는 JSONObject를 파싱할 때 response를 그대로 넣으면 json 바디 뿐만 아니라 헤더 등이 같이 들어가서 발생하는 오류일 가능성이 높습니다.
시작이 {"channel"... 이 아니고 <200 OK, {"channel"... 로 시작하기 때문에 발생하는 오류입니다.
Unexpected character (<) at position 0을 피하는 예시는 아래와 같습니다.
HttpEntity entity = new HttpEntity(header);
ResponseEntiry<String>response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
JSONParse parser = new JSONParser();
JSONObject obj = (JSONObject) parser.parse(response);
→ JSONObject obj = (JSONObject) parser.parse(response.getBody());
반응형
'IT 이야기 > JBoss EAP' 카테고리의 다른 글
JBoss EAP 6과 친해지기 13탄 - EJB3 서브시스템 (0) | 2020.12.17 |
---|---|
JBoss EAP 6과 친해지기 12탄 - 데이터소스 서브시스템 (0) | 2020.12.16 |
[Error_Log] java.text.ParseException: Unparseable date 관련 에러 발생 (0) | 2020.10.23 |
[Error_Log] URLDecoder: Illegal hex characters in escape (%) pattern 관련 에러 발생 (0) | 2020.10.23 |
[Error_Log] getOutputStream() has already been called for this respons 에러 발생 (0) | 2020.10.23 |
댓글