1. JPetStore 설정
JPetStore 소스는 https://github.com/mybatis/jpetstore-6 에 있는 것을 사용하였다.
git clone https://github.com/mybatis/jpetstore-6.git
명령어를 이용하여 소스 코드를 받는다.
2. JPetStore의 applicationContext.xml 수정
파일 위치는 ./src/main/webapp/WEB-INF/applicationContext.xml
이다.
2.1. 삭제할 부분
<jdbc:embedded-database id="dataSource"> <jdbc:script location="classpath:database/jpetstore-hsqldb-schema.sql"/> <jdbc:script location="classpath:database/jpetstore-hsqldb-dataload.sql"/> </jdbc:embedded-database>
2.2. 추가할 부분
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="jdbc/petstoreDB"/> <property name="resourceRef" value="true"/> </bean>
3. 빌드
jpetstore-6 디렉토리에서 ./mvnw clean package
를 실행한다. 그러면 target 디렉토리에 jpetstore.war 파일이 생성된다.
4. Tomcat 에 배포
톰캣 webapps 디렉토리에 jpetstore.war 파일을 복사한다.
5. Tomcat 설정
5.1. context.xml 에 추가
<Resource name="jdbc/petstoreDB" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" auth="Container" type="javax.sql.DataSource" username="petuser" password="password" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/petstoredb" maxTotal="100" maxIdle="30" />
5.2. web.xml 에 추가
<resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/petstoreDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
6. DB 작업
6.1. 데이터베이스 생성
petdb 데이터베이스를 생성한다.
6.2. 계정 생성
petuser 계정을 생성한다.
6.3. 권한 부여
petuser에 적절한 권한을 부여한다. (grant)
6.4. 스키마 및 데이터 적재
HSQLDB에서 사용되는 sql을 그대로 사용하면 된다. 파일 위치는 jpetstore-6 하위의 ./src/main/resources/database 에 있다.
$ mysql -u petuser -p password petstoredb <jpetstore-hsqldb-data.sql
참고로 jpetstore-hsqldb-schema.sql 파일은 테이블을 소문자로 만든다.