개발자/개발 공부

넥사크로 웹앱 변경 안 될 때 확인할 5가지 (feat. 톰캣 포트 귀신)

Torybory 2025. 4. 16. 16:48
반응형

💥 "흰 화면만 나와서 멘붕... 알고 보니 포트 귀신이었다" 

🧩 사건의 발단

오늘도 평화롭게 넥사크로 앱을 톰캣에 올리고 브라우저를 켰다.
localhost:8080 접속… 딱 봐도 내가 만든 앱이 떠야 정상이다.
근데...

🤔 어라? 흰 화면?

 
 
거기까진 그럴 수 있다. 근데 더 이상한 건...

앱 제목이 내가 만든 게 아님;;
전에 봤던 다른 앱의 타이틀이 떡하니 떠있다?!

 
 
데이터도 아니고 UI도 아니고… 제목만 과거의 유령처럼 남아있었다.


🕵️ 단서 수집

처음엔 JSP, Spring 설정, welcome-file 이런 거 다 뒤졌다.
ViewResolver? 잘 돼 있음. Controller? 잘 들어옴.
아무리 봐도 문제 없어 보이는데 화면은 과거 앱...
그래서 마지막 희망으로 로그 확인… 그리고 깨달았다.


⚡ 문제의 진짜 원인: 죽지 않은 톰캣

이전 실행되던 톰캣 인스턴스가 완전히 종료되지 않았고,
8080 포트를 점유한 채 살아 있었던 것!
 
 

진짜로 톰캣 좀비 하나 잡는 데 8시간 걸림...

 

아... 내 8시간

 
 

🛠 해결법

0. cmd 창을 관리자 권한으로 연다
1. netstat -ano
2. taskkill /f /pid PID번호( 0.0.0.0:8080 로컬호스트의 PID)

이걸로 포트 점유한 프로세스를 강제로 종료해주니,
비로소 내가 만든 앱이 정상적으로 뜨기 시작했다.


🔧 그 외에도 손봤던 부분들

넥사크로에서는 다음 설정들도 정확히 맞춰줘야 한다.

  • Options → Working Folder: 프로젝트 경로 정확히 지정
  • Build → Generate Path: 생성된 리소스가 웹에 반영되도록
  • Base Library Path: 넥사크로 라이브러리 경로 누락 방지

그리고 마지막으로…

🧹 브라우저 캐시 삭제 + 탭 전체 닫기 → 다시 접속

그제서야 진짜 앱이 정상적으로 보이기 시작했다.


정리: 다음에 흰 화면 나오면 이렇게 점검하자

  1. 브라우저 캐시 클리어 & 시크릿 모드 접속
  2. Welcome 파일(index.jsp), Controller 라우팅 확인
  3. 넥사크로 경로 세팅 확인
  4. 포트 점유 프로세스 확인
  5. cmd 창을 관리자 권한으로 연다
    1) netstat -ano
    2) taskkill /f /pid PID번호( 0.0.0.0:8080 로컬호스트의 PID)

📌 마무리하며

개발할 땐 늘 내 코드가 문제라고 생각하지만…
가끔은 죽지 않는 톰캣이 범인일 수 있다.
이 삽질 덕에 다음부터는 8080이 멀쩡히 살아 있는지도 먼저 확인하는 습관이 생겼다 😅