# 개요
기존에 잘 돌아가고 있던 JSP 프로젝트를 로컬로 마이그레이션하는 작업을 해야 했다.
사실 JSP는 한 번도 접해본 적은 없지만, Java기반이라는 점과 Tomcat(Spring
할 때 사용해봄)을 사용한다는 점에 큰 문제는 없을 줄 알았다.
프로젝트 생성부터 서버 환경 설정을 처음부터 진행했었으면 이런 문제는 없었겠지만,
제대로된 인수인계 문서조차 없는 상황에서 .war
파일만 import
해서 잘 동작할거라고 생각한건 무리였을지도 모른다.
# 환경
- MAC OS
- Tomcat 7.0.103
- JDK 1.6
- MySQL 5.5
- Eclipse
실제 프로그램이 동작하는 서버는 Windows Server 2012 R2
이고, 나머지 Tomcat, Java, MySQL은 메이저 코드만 어느정도 맞췄다.
# 이슈사항
처음 .war
파일을 Eclipse에 import
하고(import
방법 참고 링크) Tomcat을 적용(tomcat 적용 방법 참고 링크)하고 나니,
Cannot create JDBC driver of class '' for connect URL 'null'
에러가 발생했다.
아예 드라이브 클래스조차 인식 못하는 에러였는데,
해결방법은 다음과 같다.
# 해결 방법
Tomcat을 적용하고 나면 Project Explorer 상에 Servers
라는 폴더가 있을 것이다. 여기에 있는 context.xml
파일을 수정해야 한다.
처음에 .war
파일을 import
하고나면, 기존에 돌아가던 프로젝트의 WEB-INF
폴더 안에 context.xml
파일이 있을건데, 여기를 암만 수정해도 문제 해결이 되지 않아서 찾아보니, WEB-INF
폴더는 지워도 상관 없는 폴더 였다 🥲
Path: ..Servers/Tomcat v7.0 Server at localhost-config/context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context>
...
<Resource url="jdbc:mysql://[서버 아이피]:3306/[DB 이름]?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8"
testOnBorrow="true"
password="[DB 패스워드]"
username="[DB 유저 이름]"
maxWait="5000"
minIdle="2"
maxActive="4"
driverClassName="com.mysql.jdbc.Driver"
type="javax.sql.DataSource"
auth="Container"
name="jdbc/[JDBC 이름]"/>
</Context>
요렇게 설정하고 저장 후 돌려보니 이제는 null
이 아닌 조금 다른 에러가 나타났다.
# 이슈 사항
Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
이 에러는 .jar
파일을 제대로 참조하지 못해서 나타나는 에러였다.
보통 Eclipse에서 외부 라이브러리를 적용할 때 사용하는 방법인,
프로젝트 우클릭 > Properties > Java Build Path > Libraries > Add External JARs...
메뉴를 통해 mysql-connector-java...jar
파일을 적용 해봤으나 문제는 해결되지 않았다.
대신 직접 Tomcat을 설치한 디렉토리의 lib
안에 mysql-connector
를 넣으니 문제가 해결되었다.
# 해결 방법
[Tomcat 설치 경로]/lib
안에 mysql-connector-java...jar
를 넣기
이제 더 이상 에러는 나타나지 않았고,
localhost:8080
으로 웹 페이지 접속을 해보니 정상 동작하였다👏👏👏👏