최근 스트럿츠 감을 다시 찾을 필요가 있어 예제를 인스톨 하다가
에러를 만났다 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>
-------------------------------------------------------------------------------------