2011-01-16 6 views
0

私はSTSを使ってこの問題を抱えています。MVCや永続性などの機能を試してみるために、単純なSpringアプリケーションを構築しています。今、Spring 3のチュートリアルのうち、私が使っているものの中から、とてもシンプルなものを作りました。Springがlibを見つけられず、webappがtomcat 6で起動しない

コード:

org.springframework.beans.factory.BeanCreationException:エラーが名前を持つBeanを作成する「org.springframework.web.servlet.mvc.annotationアプリケーションは、サーバの起動時に、これに失敗しました。 DefaultAnnotationHandlerMapping#0 ':Beanの初期化に失敗しました。入れ子にされた例外はorg.springframework.beans.factory.CannotLoadBeanClassExceptionです:ServletContextリソース[/ WEB-INF/spring/appServlet/servlet-context.xml]; org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean

が、私は(私もweb-inf/libでそれを入れてみました)web-inf/classesフォルダにorg.springframework.ormをしました:ネストされた例外は、java.lang.ClassNotFoundExceptionがあります。これらのlibをそこにコピーすると、Web App Librariesフォルダに出力されました。この依存関係はプロジェクトのプロパティをビルドする際に設定されるため、STSでこのプロジェクトを構築するとうまくいきますが、libsをどのようにWebアプリケーションに転送するのですか? (私はTomcat 6を使用しています。これは、将来私が使用するサーバーです)。これは私のXMLの設定問題ですか?あるいは、私はちょうどこのライブラリを置くための正しい方法を逃していますか? (私は前に同じ問題に遭遇しましたが、クラスで必要なlibを追加することでそれを解決しました)。これ以上私は、私が自分のワークスペースをTomcatの作業フォルダがあるフォルダにブラウズすると、作業ディレクトリと任意のコモを見つけることができません。

+0

プロジェクトをプロジェクトにしていますか(STS 2.5.2 Spring MVCテンプレートはMavenのベースです)? – Ralph

答えて

2

移動します。これにより、EclipseがWebアプリケーションの公開に使用しているサーバーパスとデプロイメントパスが表示されます。例えば

、鉱山は以下のとおりです。

サーバーパス.metadata\.plugins\org.eclipse.wst.server.core\tmp0
展開パス:コマンドプロンプト(またはエクスプローラ)で今wtpwebapps

%ECLIPSE_HOME%\workspaces\default\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebappsを参照して、あなたのWebアプリケーションが表示されるはずです。 WEB-INF \ libディレクトリに移動し、jarファイルがあるかどうかを確認します。

しようとするいくつかのこと:

  • のjarがWEB-INF \ libに格納されていない場合、あなたはそれを再発行する必要があるかもしれません。 ServersビューでTomcatを右クリックし、Publishをクリックします。それは現れる?そうでない場合は、もう一度Tomcatを右クリックし、今度はClean...を選択すると、すべてが消去されて再公開されます。これがうまくいかない場合は、手動でファイルを削除し、Eclipseに再公開するよう指示することができます。

  • サーバービューのTomcatの下のwebappを右クリックし、Clean module work directoryを選択して、作業ディレクトリを消去します。または手動で削除することによって%ECLIPSE_HOME%\workspaces\default\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost

  • また、Eclipseが変更を受け取っていない場合に備えて、あなたのWebアプリケーションプロジェクトをクローズ - 再オープン/クリーニング/再ビルド/リフレッシュすることもお勧めします。

0

WEB-INF/libディレクトリにさまざまなSpring JARを入れる必要があります(WEB-INF/classesはJARファイルには使用されません)。

org.springframework.ormだけでなく、ほとんどが必要です(依存性図についてはhereを参照)。

0

少なくともlibary jarファイルは、warファイル内のWEB-INF/libにある必要があります。また、warファイルをproductiv Webサーバーにデプロイするだけで済みます。

  • あなたはSTSを使用しますが、あなたのプロジェクトは、Mavenプロジェクトではない場合:あなたは<projectRoot>/WebContent/WEB-INF/libs内のファイルを配置する必要があります(エクスポート/ウェブ/ WARファイルを実行する必要があるのEclipse/STSとの戦争を構築します。 )

  • Mavenを使用する場合、pom.xmlに依存関係を指定し、mavenを使用してwar(/ Mavenパッケージとして実行)をパッケージ化する必要があります。 Tomcatの概要ページを開きますTomcat ServerServersビューをダブルクリックする