메이쁘

[Spring] AWS EC2 서버에 프로젝트 War파일 올렸는데 404 Invalid character found in the HTTP protocol 오류 발생 시 해결방법 본문

Technology/Web - Spring

[Spring] AWS EC2 서버에 프로젝트 War파일 올렸는데 404 Invalid character found in the HTTP protocol 오류 발생 시 해결방법

메이쁘 2021. 4. 19. 02:21

안녕하세요.

 

제목이 기네요..

 

여튼,

 

오류 로그에는 "Invalid character found in the HTTP protocol" 이,

결과 페이지에는 404 ERROR 가 발생하는 경우에 대해 해결하는 방법입니다!

*** 이 방법을 통해 해결할 수도, 안되면 다른 방법을 찾아보셔야 합니다 ㅠ

 

 

원인을 한참 찾은 결과, Eclipse Tomcat 상에서는 Modules에서 Web Module 설정할 때 Path를 "/" 로 설정하고 로컬호스트 테스트를 했었습니다만.. AWS 서버 내의 톰캣 설정에서는 해당 경로가 다르게 설정되어 있더라구요. (기본값)

 

 

즉, Tomcat의 Web Module URL Path 설정이 다르게 되어있어서 해당 HTTP 프로토콜 URL을 알지 못했다는 것입니다.

 

..

 

만약에, http://[IP주소]:[포트]/[프로젝트명]/[Mapping URL] 방식으로 입력해서 테스트하면 결과가 제대로 나올것입니다.

 

보통 http://[IP주소]:[포트]/[Mapping URL] 방식으로 서버 API를 구성하기 때문에, 이를 톰캣에서 설정 변경해야 합니다.

 

그럼 해볼까요?

 

 

총 두 가지 방법이 존재합니다.(필자는 우선 2번째 방법을 사용했습니다)

 

 

 

 

첫 번째 방법


- war 파일 이름 ROOT.war 로 변경

- 단점 : 여러 빌드 설정을 할 수 없다. 잘 안먹힌다.

 

 

 

 

 

두 번째 방법


- Tomcat의 server.xml 설정 변경

- 단점 : ROOT(/) 경로와 프로젝트명 경로 동시에 접근 가능하다.

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="false">
        <Context path="/" docBase="프로젝트명"  reloadable="true" source="com.example.on(패키지경로).server:프로젝트명> </Context>    
</Host>

 

 

 

 

 

이상입니다.

 

감사합니다!

 

 

 

참고

www.lesstif.com/java/tomcat-root-context-webapp-14745616.html

Comments