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 파일은 테이블을 소문자로 만든다.