要するに、これを行っているときに、「spring-context.xml」ファイルを WebApp に配置するフォルダーがわかりません。
ApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");
長い: クラスパスが基本的に何であるかを知っています。以前は、jar やその他のリソースを探す場所を Java プロジェクトに指示する環境変数でした。あまり使われていないようです。しかし、Eclipse では、Java ビルド パスに移動してクラスパスを設定する方法について説明しています。
クラスパス(上記)を使用してSpringの「spring-context.xml」ファイルを見つけたいときに理解できないのは、それがEclipse Java Build Pathと関係がある場合です。上記のステートメントを使用すると、WebApp はどのフォルダーを検索しますか? 「クラスパスで」と言う人がよくいますが、環境変数を使用したくないため、Eclipse Javaビルドパスはspring-context.xmlの検索とはほとんど関係がないように見えるため、それはあまりわかりませんファイル。
もっと詳しく
当初は、これ以上の詳細が状況を混乱させるのではないかと心配していましたが、もしかしたら鍵を握っているのかもしれません。
Vaadin を使用して Web アプリを作成しています。Spring コンテキストを Vaadin に取り込む方法については、彼らの指示に従っています。Spring ヘルパー クラスを作成しました。
public SpringContextHelper(Application application) {
ServletContext servletContext = ((WebApplicationContext) application.getContext()).getHttpSession().getServletContext();
context = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
}
には、web.xml
次のセクションがあります。
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring-context.xml</param-value>
</context-param>
の最初の行でエラーが発生していますSpringContextHelper()
。行を分割したので、失敗しているのはこのロジックであることがわかります。
WebApplicationContext wac = (WebApplicationContext) application.getContext();
wac
おそらくファイルが見つからないため、null が返されspring-context.xml
ます。