Servlet and Jsp/아파치톰캣

jsp - jdbc프로그래밍/ 톰캣과 오라클 포트번호 충돌했을 때

Razelo 2021. 1. 14. 10:44

무난히 jsp 를 작성하고 있는 중이었는데. (jdbc관련) 갑자기 이클립스에서 서버를 구동시키자 8080포트가 이미 사용중이라는 경고창이 출력되었다. 문득 생각해보니 그 이전에 바로 oracle database 11 EE를 다운받아서 실행시켜놨던게 생각이 났다. 

 

검색해보니 오라클db와 톰캣 모두 8080포트를 사용하기 때문에 충돌이 나는 사람들의 사례가 많았다. 

 

대충 확인하는 과정과 해결한 과정을 보여주면 다음과 같다. 우선 오라클 db과 충돌이 난게 확실한지 확인하기 위해서 

 

cmd에서 

 

netstat -a -n -o -p tcp

 

라고 쳐준다. 그러면 프로토콜, 로컬주소, 외부주소, 상태 ,PID 순으로 쭉~~~ 뜰텐데 그중에서 

호트가 8080으로 지정된걸 찾아낸다. 그리고 여기서 PID를 확인한다. 확인한 PID가 이제 어떤 프로세스의 값인지 확인해야 한다. 

그러므로 작업관리자 창을 띄워준다. 

여기서 보면 가운데  '상태' 라고 하는 메뉴바가 보이는데 거기에 대고 그냥 마우스 오른쪽을 클릭해준다. 그리고 PID 를체크해주면 이제 밑에 있는 목록들의 PID도 같이 표시된다. 

 

내경우에는 oracle executable 어쩌구 ~~ 에서 내가 확인한 PID와 똑같은 값이었다. 즉 이 프로세스가 톰캣과 포트충돌이 일어난 주요 이유였다. 

 

이제 해결방법이 몇가지 있었는데, 우선은 

1. 찾아낸 이 프로세스를 종료시킨다. 

2. 톰캣의 포트번호를 바꿔준다. 

3. oracle의 포트번호를 바꿔준다. 

 

1번 같은 경우는 내가 지금 oracle을 활용해서 jdbc 프로그래밍을 하는 중이라서 종료시키면 jdbc를 할 수 가 없어서 안했고, 3은 2번보다 복잡해서 안했다. 

2번이 제일 간단하다. 

 

 

이클립스 창에가면 (혹은 그냥 톰캣 경로 들어가서 server에서 server.xml) 나는 이클립스에서 수정했는데, 

여기서 server.xml 에 들어가면 Connector connectionTimeout~~~~~~~ 어쩌구  태그가 있는데, 이 태그에 속성값으로 port가 지정되어있다. 그 포트번호를 바꿔주었다. 내 경우에는 8080 -> 8081로 바꿨다. 이렇게 바꿔놓고 서버를 다시 구동하면 정상 작동한다. 

반응형