갑자기 이와 같은 에러발생..
그래서 검색해보다가 아래 블로그 보고 수정 처리!
[Tomcat 에러] 요청 타겟에서 유효하지 않은 문자가 발견되었습니다. 유효한 문자들은 RFC 7230과 RFC 3986에 정의되어 있습니다. (java.lang.IllegalArgumentException) 에러 해결방법
2월 08, 2022 8:48:43 오전 org.apache.coyote.http11.AbstractHttp11Processor process
정보: HTTP 요청 헤더를 파싱하는 중 오류 발생
비고: HTTP 요청 파싱 오류들이 더 발생하는 경우 DEBUG 레벨 로그로 기록될 것입니다.
java.lang.IllegalArgumentException: 요청 타겟에서 유효하지 않은 문자가 발견되었습니다. 유효한 문자들은 RFC 7230과 RFC 3986에 정의되어 있습니다.
at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:213)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1108)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:654)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:319)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
✔ 원인
유효하지않은 문자(특수문자나 한글같은..?)가 쿼리스트링으로 포함된 URI로 요청시에 나는 톰캣 에러
✔ 해결방법
1. 톰캣 Server.xml의 Connector에 relaxedQueryChars를 추가한다 (원하는 특수문자 다 추가)
<Connector connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
relaxedQueryChars="[,]()^"
/>
2. 요청보내는곳에서 encoding 처리해서 보내기
예를 들면 javascript에서는 param을 보낼 때, encodeURI(param) 처리를 해서 보내면 된다
(아래글에서도 인코딩처리때문에 에러가 났었다)
https://aroundlena.tistory.com/21
참고 url
https://aroundlena.tistory.com/50?category=634935
본인 이클립스 환경 세팅 화면!!
'Errors' 카테고리의 다른 글
Publishing failed with multiple errors, 지정된 파일을 찾을 수 없습니다 (0) | 2024.04.18 |
---|---|
23.03.08 git upload error 해결 (0) | 2023.03.09 |
23.02.16 MySQL 특정 컬럼 Update 시 error 해결 (0) | 2023.02.16 |
23.02.15 HTML 주석문과 JSP 주석문 에 따른 Error (0) | 2023.02.15 |
23.02.14 Requesting JavaScript AST from selection-이클립스 오류 해결 (0) | 2023.02.14 |