상황 - get방식으로 값을 전달하여 페이지 이동처리 중 발생
오류내용
java.lang.IllegalArgumentException:
요청 타겟에서 유효하지 않은 문자가 발견되었습니다.
유효한 문자들은 RFC 7230과 RFC 3986에 정의되어 있습니다.
원인 / 해결방안 1
EL태그 상에 $가 빠져있어서 중괄호가 주소값으로 전달되어 발생하였다.
$를 붙여주면 정상적으로 처리된다.
원인 / 해결방안 2
tomcat은 따로 설정하지 않으면 특수문자 또는 한글 인코딩이 되지 않기 때문에
주소값에 특수문자 [ ] { } ( ) ^ | " ; 가 들어갈 경우 오류가 발생한다고 한다.
특수문자를 허용하도록 설정하자.
C:\Program Files\Apache Software Foundation\Tomcat\conf 에 위치한 server.xml 파일을 열어서 수정한다.
또는 eclipse, sts의 server에서 수정이 가능하다.
1
2
3
4
|
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
relaxedQueryChars="[]{}()^|""/>
|
cs |
Connector 에 위와같이 relaxedQueryChars="[]{}()^|"" 을 추가해주면 해결
문제의 원인이 EL문제였으므로 정상적인 페이지 이동이 되지 않지만,
유효하지 않은 문자에 따른 문제는 해결되었다.
'오류' 카테고리의 다른 글
[eclipse, sts] pom파일 빨간x 오류 (0) | 2021.10.27 |
---|---|
[eclipse, sts] Spring project java파일 빨간줄 오류 (0) | 2021.10.27 |
[eclipse] Repository registry initialization 오류 (0) | 2021.10.27 |