박재성의 스트럿츠 프레임워크 워크북 3년만에 다시 보기 charter1 - and db by Vins

최근 스트럿츠 감을 다시 찾을 필요가 있어 예제를 인스톨 하다가
에러를 만났다 ant 최신 버젼을 다운 받아 설치하고
charter1.zip을 다운 받아 압축을 풀고 ant db 실행

다음과 같은 에러 접함

java.sql.SQLException: Communication failure during handshake. Is there a server running on 127.0.0.1:3306?

3년이 지난 후 서버 환경은 apache 2.X, tomcat 5.5.X, mysql 5.X
가장 큰 변화는 mysql 5.0으로 4.0에서 버젼 업 되어 에러가 나는 것이다.

http://dev.mysql.com/downloads/connector/j/3.1.html
위 사이트에서 jdbc 드라이버를 새로 다운 받아야 함 (우선 회원 가입 해야 다운 가능)
위 페이지에서 원도우 환경일 경우 Source and Binaries (zip) 다운 로드 함
앞축 풀고 폴더 안에 jar 파일만 카피해서 프로젝트 lib에 복사

## 프로젝트 lib 란 ##
tomcat 내 common\lib 폴더가 아니다.
지금 charter1 폴더를 빌드 할려고 하는 것이니 해당 폴더에 가서 lib\application 폴더안에
mysql-connector-java-2.0.14-bin.jar를 지우고 복사 (다른 설정 필요 없음)
복사 후 남은 jdbc 커넥터 명 (mysql-connector-java-5.0.0-beta-bin.jar) 이 버젼 이상이면 OK

드라이버가 바뀌었음으로 dbpool.properties 파일에서 drivers 부분을 변경해야 함

원문 : drivers=org.gjt.mm.mysql.Driver 이걸 지우고
교체 : drivers=com.mysql.jdbc.Driver 이걸 넣는다

바꾸고 난 후 다시 ant db 실행

이번엔 아래와 같은 에러를 만났다

BUILD FAILED
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual
to your MySQL server version for the right syntax to use near '&'?6;4E46G8E2F8G2E8FH?GF??!(' at line 1

MySQL 설치 환경은 언어를 기본 값을 하지 않고 utf8로 설정하였다 (utf-8 아님)
이럴 경우 dbpool.properties 파일의 mysql.url 부분

즉 mysql.url=jdbc:mysql://127.0.0.1:3306/struts?useUnicode=true&characterEncoding=KSC5601 이 부분에서
마지막 인코딩 부분을 KSC5601 을 전부 지우거나 utf8로 변경 하여 실행하면 빌드 OK


완료 화면
--------------------------------------------------------------------------

C:\websource\javajigi\chapter1>ant db
Buildfile: build.xml

init:

db:
[sql] Executing resource: C:\websource\javajigi\chapter1\resources\chapter1.sql
[sql] 3 of 3 SQL statements executed successfully

BUILD SUCCESSFUL
Total time: 1 second
C:\websource\javajigi\chapter1>

-------------------------------------------------------------------------------------