본문 바로가기

개발/JSP

chap13-2.8 클래스의 컴파일 순서 정리

방명록 예제는 앞서 에제들과 달리 많은 클래스를 사용하고 있는데, 서비스 클래스들을 사용하려면 MessageDao 클래스 및 서비스 클래스가 발생시키는 에외 클래스들이 먼저 존재 해야 한다.

따라서 알맞은 순서로 클래스를 생성하지 않으면 컴파일 도중 클래스가 존재하지 않는다는 컴파일 에러 메시지가 발생할 수 있다. 아래에 컴파일 순서를 정리한다.


 점선으로 된 화살표는 컴파일 할 때 필요한 클래스를 표시한다. 예를 들어, DAO 기본 클래스를 컴파일 하려면 모델 클래스와 JDBC 관련 클래스가 먼저 컴파일 되어 있어야 한다. 비슷하게 DAOProvider 관련 클래스를 컴파일 하려면 DAO 기본 클래스와 DBMS별 DAO 클래스가 컴파일 되어 있어야 한다.

또한, 상자 안에 번호가 존재하는 경우에는 순서에 맞춰 컴파일 해야 함을 의미한다. 에를 들어 Message 클래스가 컴파일 되어 있어야 MessageListView 클래스를 컴파일 할 수 있다.

아래는 클래스 패스를 설정하고 컴파일하는 과정이다. 
 
D:\..\WEB-INF> set CLASSPATH=d:\tomcat\apache-tomcat-6.0.18\lib\servlet-api.jar
D:\..\WEB-INF> set CLASSPATH=%CLASSPATH%;classes

D:\..\WEB-INF> javac -d classes src\kame\jdbc\JdbcUtil.java
D:\..\WEB-INF> javac -d classes src\kame\jdbc\loader\DBCPInit.java
D:\..\WEB-INF> javac -d classes src\kame\jdbc\connection\ConnectionProvider.java

D:\..\WEB-INF> javac -d classes src\kame\chap13\dao\model\Message.java
D:\..\WEB-INF> javac -d classes src\kame\chap13\dao\model\MessageListView.java

D:\..\WEB-INF> javac -d classes src\kame\chap13\dao\MessageDao.java
D:\..\WEB-INF> javac -d classes src\kame\chap13\dao\mysql\MySQLMessageDao.java

D:\..\WEB-INF> javac -d classes src\kame\chap13\dao\MessageDaoProvider.java
D:\..\WEB-INF> javac -d classes src\kame\chap13\dao\MessageDaoProviderInit.java

D:\..\WEB-INF> javac -d classes src\kame\chap13\service\ServiceException.java
D:\..\WEB-INF> javac -d classes src\kame\chap13\service\MessageNotFoundException.java
D:\..\WEB-INF> javac -d classes src\kame\chap13\service\InvalidMessagePasswordException.java

D:\..\WEB-INF> javac -d classes src\kame\chap13\service\GetMessageListService.java
D:\..\WEB-INF> javac -d classes src\kame\chap13\service\WriteMessageService.java
D:\..\WEB-INF> javac -d classes src\kame\chap13\service\DeleteMessageService.java