---
title: STSでSpringMVC+SpringDataJPA+HibernateなPre-Configuredテンプレートプロジェクトをクイックスタート! jsug
tags: []
categories: ["Programming", "Java", "org", "springframework", "AdventCalendar", "2012"]
date: 2012-11-30T19:38:07Z
updated: 2012-11-30T20:00:26Z
---
この記事は[Spring Framework Advent Calendar 2012][1]の一日目の記事です。
SpringMVCやSpringDataを使って開発する際、最初の開発プロジェクト構築が面倒くさい。
pom.xmlにあれこれ設定して、各種設定ファイルにお決まりの設定をして、、
STSにはSpringMVCの雛形プロジェクトを作成できるが、あれで作成される内容は不十分。。結局自分でカスタマイズする必要があり、結構時間がかかる。
自分はこういう作業をskipするためによくテンプレートプロジェクトを作成して、コピーして使っていた。maven-archetypeでもいいのだが若干面倒くさい。
SpringToolSuite3からは実はテンプレートプロジェクトをカスタマイズする機能が追加されているので、普段使っているテンプレートプロジェクトをSTS対応させてみた。
### 前提条件
* STS 3+ http://www.springsource.org/downloads/sts-ggts
(spring-tool-suite-3.1.0.RELEASE-e3.8-macosx-cocoa-x86_64で検証)
### カスタムテンプレートプロジェクトの設定
"Preferences" -> "Spring" -> "Template Projects"にいって"add"をクリック.
名前に"custom-template"(何でもOK)、URLに"https://github.com/making/spring-webapp-template/raw/master/template/descriptors.xml"を設定。
"OK"をクリック
### テンプレートプロジェクトを作成する
"File" -> "New" -> "Spring Template Project"に行って"Spring Web Application Template Project"を選択(新しく追加されている!).
"Next"をクリック. 初回はテンプレートプロジェクトをダウンロードする。
"Yes"をクリック.
プロジェクト情報を入力して"Finish"をクリック.
テンプレートプロジェクトがworkspaceに出来上がる.
プロジェクトを右クリックして"Configure" -> "Convert to Maven Project"を選択.
Mavenプロジェクトとして出来上がる。
### アプリケーションの起動
プロジェクトを右クリックして "Run As" -> "Run on Server"を選択.
"VMware vFabric tc Server Developer Edition vx.x"を選択して"Finish"をクリック.
次のように出力される.
簡単にプロジェクトを作成してスタートできた。
次回はこのテンプレートプロジェクトのプロジェクト構成を簡単に説明しよう。
### トラブルシューティング
あるあるのはまりポイント
#### Cannot create JDBC driver
##### 問題
00:50:18 [tomcat-http--4] [DEBUG] [o.h.e.transaction.spi.AbstractTransactionImpl ] - begin
Cannot create JDBC driver of class 'net.sf.log4jdbc.DriverSpy' for connect URL 'jdbc:log4jdbc:h2:mem:projectName;MODE=PostgreSQL'
java.sql.SQLException: No suitable driver
が発生する。APサーバー(tomcat)が JDBCドライバを見つけられていない. デフォルトでH2が設定されている.
##### 解
JDBCドライバをAPサーバー(tomcat)のlibに置く。
cp $HOME/.m2/repository/com/h2database/h2/x.x.x/h2-x.x.x.jar $STS_HOME/vfabric-tc-server-developer-x.x.x.RELEASE/tomcat-x.x.x.RELEASE/lib/
#### Out of memory: PermGen space
##### 問題
java.lang.OutOfMemoryError: PermGen space
が発生して起動しない。
##### 解
Permサイズを大きくする。JVMオプションに `-XX:PermSize=256m`.
jarが多いのでTomcatのデフォルト値だとPermサイズが足りない。
tc serverを使う場合は最初から設定されている。
2日目は[@mike_neck][10]さん、よろ!
[1]: http://atnd.org/events/34294
[2]: https://raw.github.com/making/spring-webapp-template/master/wiki/images/screen01.png
[3]: https://raw.github.com/making/spring-webapp-template/master/wiki/images/screen02.png
[4]: https://raw.github.com/making/spring-webapp-template/master/wiki/images/screen03.png
[5]: https://raw.github.com/making/spring-webapp-template/master/wiki/images/screen04.png
[6]: https://raw.github.com/making/spring-webapp-template/master/wiki/images/screen05.png
[7]: https://raw.github.com/making/spring-webapp-template/master/wiki/images/screen06.png
[8]: https://raw.github.com/making/spring-webapp-template/master/wiki/images/screen07.png
[9]: https://raw.github.com/making/spring-webapp-template/master/wiki/images/screen08.png
[10]: http://twitter.com/mike_neck