
Eclipse を使用して SpringMVC で簡単なサンプルを作成する。勉強のため Spring bootは使用しない。
各種バージョンは次のとおり。
OS : Windows7 64bit
Java : JDK1.8
Eclipse : 4.6(neon)
Spring : 4.3.2
Project の作成
Project エクスプローラで空白部分を右クリック → New → Other を選択してNew画面を出す。
Spring フォルダにある Spring Legacy Project を選択して Next ボタンクリック。

New Spring Legacy Project 画面が表示される。 Project name に適当に Sample とか入れて、Templats に Spring MVC Project を選択する。

次の画面でトップレベルのパッケージを指定する。ここでは org.yyama.sample とした。

Finish を押すとプロジェクトが作成される。
フォルダ構成。
C:.
│ .classpath
│ .project
│ .springBeans
│ pom.xml
│
├─.settings
│ org.eclipse.jdt.core.prefs
│ org.eclipse.m2e.core.prefs
│ org.eclipse.wst.common.component
│ org.eclipse.wst.common.project.facet.core.xml
│ org.eclipse.wst.validation.prefs
│ org.springframework.ide.eclipse.beans.core.prefs
│ org.springframework.ide.eclipse.core.prefs
│
├─src
│ ├─main
│ │ ├─java
│ │ │ └─org
│ │ │ └─yyama
│ │ │ └─sample
│ │ │ HomeController.java
│ │ │
│ │ ├─resources
│ │ │ │ log4j.xml
│ │ │ │
│ │ │ └─META-INF
│ │ └─webapp
│ │ ├─resources
│ │ └─WEB-INF
│ │ │ web.xml
│ │ │
│ │ ├─classes
│ │ ├─spring
│ │ │ │ root-context.xml
│ │ │ │
│ │ │ └─appServlet
│ │ │ servlet-context.xml
│ │ │
│ │ └─views
│ │ home.jsp
│ │
│ └─test
│ ├─java
│ │ └─org
│ │ └─yyama
│ │ └─sample
│ └─resources
│ log4j.xml
│
└─target
├─classes
│ │ log4j.xml
│ │
│ └─org
│ └─yyama
│ └─sample
│ HomeController.class
│
├─m2e-wtp
│ └─web-resources
│ └─META-INF
│ │ MANIFEST.MF
│ │
│ └─maven
│ └─org.yyama
│ └─sample
│ pom.properties
│ pom.xml
│
└─test-classes
│ log4j.xml
│
└─org
└─yyama
└─sample
Pom.xml のソフトウェアのバージョンを編集する
デフォルトでは一昔前のバージョンが指定されているので、2016 年 8 月 20 日時点の最新バージョンに修正する。
修正前(修正箇所抜粋)
<properties> <java-version>1.6</java-version> <org.springframework-version>3.1.1.RELEASE</org.springframework-version> <org.aspectj-version>1.6.10</org.aspectj-version> <org.slf4j-version>1.6.6</org.slf4j-version> </properties>
修正後(修正箇所抜粋)
<properties> <java-version>1.8</java-version> <org.springframework-version>4.3.2.RELEASE</org.springframework-version> <org.aspectj-version>1.8.9</org.aspectj-version> <org.slf4j-version>1.7.21</org.slf4j-version> </properties>
Tomcat サーバーに追加する
プロジェクトができたので、Eclipse の Tomcat 上で動かせるように設定する。
Servers ウィンドウに表示されている Tomcat を右クリックして Add and Remove をクリック。
Add And Remove 画面が表示される。

Sample を右側のリストに Add して Finish を選択する。

実行する
Servers ウィンドウの Tomcat サーバーを右クリックして Start を選択する。
起動に成功すると次のようなメッセージが表示される。
8 20, 2016 1:18:16 午後 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Sample' did not find a matching property.
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: Server version: Apache Tomcat/9.0.0.M9
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: Server built: Jul 4 2016 18:22:47 UTC
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: Server number: 9.0.0.0
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: OS Name: Windows 7
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: OS Version: 6.1
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: Architecture: amd64
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: Java Home: C:\Program Files\Java\jre1.8.0_101
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: JVM Version: 1.8.0_101-b13
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: JVM Vendor: Oracle Corporation
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: CATALINA_BASE: C:\opt\Eclipse\workspaces\workspace1\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: CATALINA_HOME: C:\opt\tomcat\apache-tomcat-9.0.0.M9
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: Command line argument: -Dcatalina.base=C:\opt\Eclipse\workspaces\workspace1\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: Command line argument: -Dcatalina.home=C:\opt\tomcat\apache-tomcat-9.0.0.M9
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: Command line argument: -Dwtp.deploy=C:\opt\Eclipse\workspaces\workspace1\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: Command line argument: -Djava.endorsed.dirs=C:\opt\tomcat\apache-tomcat-9.0.0.M9\endorsed
8 20, 2016 1:18:16 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: Command line argument: -Dfile.encoding=utf-8
8 20, 2016 1:18:16 午後 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
情報: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_101\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_101/bin/server;C:/Program Files/Java/jre1.8.0_101/bin;C:/Program Files/Java/jre1.8.0_101/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\opt\Eclipse;;.
8 20, 2016 1:18:16 午後 org.apache.coyote.AbstractProtocol init
情報: Initializing ProtocolHandler ["http-nio-8080"]
8 20, 2016 1:18:17 午後 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
情報: Using a shared selector for servlet write/read
8 20, 2016 1:18:17 午後 org.apache.coyote.AbstractProtocol init
情報: Initializing ProtocolHandler ["ajp-nio-8009"]
8 20, 2016 1:18:17 午後 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
情報: Using a shared selector for servlet write/read
8 20, 2016 1:18:17 午後 org.apache.catalina.startup.Catalina load
情報: Initialization processed in 1113 ms
8 20, 2016 1:18:17 午後 org.apache.catalina.core.StandardService startInternal
情報: サービス Catalina を起動します
8 20, 2016 1:18:17 午後 org.apache.catalina.core.StandardEngine startInternal
情報: Starting Servlet Engine: Apache Tomcat/9.0.0.M9
8 20, 2016 1:18:19 午後 org.apache.jasper.servlet.TldScanner scanJars
情報: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
8 20, 2016 1:18:19 午後 org.apache.catalina.core.ApplicationContext log
情報: No Spring WebApplicationInitializer types detected on classpath
INFO : org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization started
8 20, 2016 1:18:19 午後 org.apache.catalina.core.ApplicationContext log
情報: Initializing Spring root WebApplicationContext
INFO : org.springframework.web.context.support.XmlWebApplicationContext - Refreshing Root WebApplicationContext: startup date [Sat Aug 20 13:18:19 JST 2016]; root of context hierarchy
INFO : org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/root-context.xml]
INFO : org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 601 ms
INFO : org.springframework.web.servlet.DispatcherServlet - FrameworkServlet 'appServlet': initialization started
8 20, 2016 1:18:20 午後 org.apache.catalina.core.ApplicationContext log
情報: Initializing Spring FrameworkServlet 'appServlet'
INFO : org.springframework.web.context.support.XmlWebApplicationContext - Refreshing WebApplicationContext for namespace 'appServlet-servlet': startup date [Sat Aug 20 13:18:20 JST 2016]; parent: Root WebApplicationContext
INFO : org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/appServlet/servlet-context.xml]
INFO : org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor - JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
INFO : org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/],methods=[GET]}" onto public java.lang.String org.yyama.sample.HomeController.home(java.util.Locale,org.springframework.ui.Model)
INFO : org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter - Looking for @ControllerAdvice: WebApplicationContext for namespace 'appServlet-servlet': startup date [Sat Aug 20 13:18:20 JST 2016]; parent: Root WebApplicationContext
INFO : org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter - Looking for @ControllerAdvice: WebApplicationContext for namespace 'appServlet-servlet': startup date [Sat Aug 20 13:18:20 JST 2016]; parent: Root WebApplicationContext
INFO : org.springframework.web.servlet.handler.SimpleUrlHandlerMapping - Mapped URL path [/resources/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0'
INFO : org.springframework.web.servlet.DispatcherServlet - FrameworkServlet 'appServlet': initialization completed in 1522 ms
8 20, 2016 1:18:21 午後 org.apache.coyote.AbstractProtocol start
情報: Starting ProtocolHandler [http-nio-8080]
8 20, 2016 1:18:21 午後 org.apache.coyote.AbstractProtocol start
情報: Starting ProtocolHandler [ajp-nio-8009]
8 20, 2016 1:18:21 午後 org.apache.catalina.startup.Catalina start
情報: Server startup in 4436 msブラウザを起動し URL に http://localhost:8080/sample を入力してみると。
無事起動できた。
原因不明のエラーで起動できない場合は以下の記事の内容を試してみる。
yyama1556.hateblo.jp
簡単なアンケートアプリも作ってみた。
yyama1556.hateblo.jp
以上。
- 作者: 株式会社NTTデータ
- 出版社/メーカー: 翔泳社
- 発売日: 2016/07/21
- メディア: 大型本
- この商品を含むブログ (1件) を見る
- 作者: 長谷川裕一,大野渉,土岐孝平
- 出版社/メーカー: 技術評論社
- 発売日: 2016/06/14
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2015/05/21
- メディア: Kindle版
- この商品を含むブログを見る