2017년 5월 19일 금요일

tomcat에서 서비스 호출 시 다음과 같은 오류가 발생

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

분명 잘 돌아가던 서비스인데 Windows OS 에서 CentOS 로 서비스를 이전 중 테스트 하다가 웹서비스를 호출하면 저런 오류와 함께 HTTP 400 에러가 발생했다.

처음엔 Chrome으로 서비스 호출시에는 발생하지 않고, IE 에서 호출하면 발생하기에

일단 서비스 호출 주소에 파라메터로 한글이 들어가면 오류가 발생하길래

브라우저 + 서버 OS 특징으로 생각하고 문제를 접근했으나, 해결 안됨.

좀 더 구글링을 해 보았다..

찾다보니 다음과 같은 글을 발견

http://stackoverflow.com/questions/41053653/tomcat-8-is-not-able-to-handle-get-request-with-in-query-parameters

요약하면 보안상의 이유로 Tomcat 7.0.738.0.398.5.7 버전 부터는

호출 주소에 특수문자가 들어갈 시 차단한다는 것을 알게 됨.

그리고 특수문자를 선택해서 허용하는 옵션이 있다고 하나,

내 경우엔 한글 전체가 encoding 되어(URIEncode 안하고 브라우저에서 자동으로 .)

허용하지 않는 것으로 파악하여, 그냥 간단하게 접근 하기로 함.

Tomcat Down Grade!!

CentOS 최신 버전에선 Tomcat 6를 제공 안하므로

레포지터리를 등록해야 함!

https://zetawiki.com/wiki/CentOS5_%ED%86%B0%EC%BA%A36_%EC%84%A4%EC%B9%98

위의 글 참고하여 다운그레이드 하고, 한글도 이상없이 처리됨을 확인!

끗!

댓글 없음:

댓글 쓰기

BE Band (비밴드) - 2024년 03월 02일 잠실새내 락앤롤욱스 공연

나의 10~20대를 보낸 잠실에서의 공연.. 오랜만에 가보니.. 여기가.. 마눌님과 자주 가던 영화관이었는데... 여긴 뭐가 있었는데... 란 추억도 떠올리며 기분좋게 감.​ 공연장은 좀 협소한 편이었고, 인천의 쥐똥나무 보다는 약간 크고... 인천 ...