私のgae + spring + mavenプロジェクトは完璧に機能します。しかし、eclipseを使用して機能させることはできません。
Eclipse から GAE を使用してプロジェクトを実行すると (Google プラグイン、Run As > Web Applicationを使用)、 pom.xmlで宣言されたspring-web依存関係がWEB-INF/libから消えているようです。したがって、spring-webがない場合、これは例外です。
Could not instantiate listener org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
(完全な GAE スタックトレースはこちら)
コンソールから実行するmvn clean package gae:run
と、アプリは魅力的に機能し、spring-webは期待どおりWEB-INF/lib ディレクトリの下に配置されます。
テスト プロジェクトを BitBucket で公開しました: https://bitbucket.org/jelies/gae-spring-maven
Eclipse から webapp を起動するときに、 spring-webがWEB-INF/libに公開されない理由は何ですか?
使用:
- SpringSource ToolSuite 3.1.0 (Eclipse 3.8 ベース)
- Java 6
- 春 3.2.1
- Maven 3.0.4
- Google App Engine 1.7.5
- maven-gae-plugin 0.9.6
更新: springバージョン3.1.4.RELEASEを使用すると、 spring-web依存関係がWEB-INF/libに公開されます。これは、3.2.X バージョンでは発生しません。