jPetStore는 유명한 테스트 애플리케이션으로 유명합니다.

 

최근 몇년 만에 jPetStore를 이용하여 사이트 한 셋을 구축해야 할 일이 있었는데, 적당한 파일을 구하지 못하여 조금 고생을 했습니다.

오라클의 다운로드 링크는 실제로는 없어져서 받을 수가 없었고, 구글링을 한 결과..

이 정도 검색이 되고 저는 아래의 Spring 2.5에 sample로 포함된 jPetStore를 사용하였습니다.

 

samples/jpetstore 디렉토리에서 ant 빌드만 하면 바로 Tomcat에 올려 화면을 띄울 수 있습니다. 단, 저는 데이터를 MariaDB(MySQL)에 둘 예정이었으므로 좀 더 추가 작업이 필요했습니다. 

  • Tomcat에 MariaDB Client (JDBC Driver) 설치
  • jPetStore 내의 jdbc.properties에 MariaDB 정보 기재

 

처음에는 이렇게 테스트 하다가 Tomcat의 DataSource를 사용하도록 수정하였습니다.

당연히 Tomcat에서 jdbc/jpetstore DataSource 생성을 하고 (context.xml), jPetStore의 dataAccessContext-local.xml에서 bean id="dataSource"를 다음과 같이 수정합니다. 

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="java:comp/env/jdbc/jpetstore"/>
</bean>

 

마지막으로는 Tomcat에 올릴 소스 파일과 HTTP Server에 올릴 소스 파일을 분리하였습니다.

즉, *.html, image/* 파일을 HTTP Server의 Document Root에 올린 후 HTTP Server mod_jk의 연동 확장자 및 연동 패턴을 재설정하였습니다.

 

추가합니다.

테스트를 위하여 DB(MariaDB)에 데이터를 꽤 많이 넣었는데 페이지 처리에 문제가 생겼습니다. 즉, DB에서 가져온 데이터를 PagedListHolder에 일단 모두 담아놓고 페이지 처리를 하고 있어, 많은 데이터를 가져오는 화면의 경우 OutOfMemoryError가 발생하였습니다. 따라서 DB에서 데이터를 가져올 때부터 페이지 처리를 하도록 코드와 관련 sqlmap 내 SQ 을 수정할 수 밖에 없었습니다.