0

要するに、これを行っているときに、「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ます。

4

1 に答える 1

0

基本的に、プロジェクトに指定する「Java ビルド パス」CLASSPATH です。

また、「Java Resources」プロジェクト フォルダの「src」ルートに配置したファイルは、Web アプリの「classes」サブディレクトリに自動的に移動します (つまり、実行時の CLASSPATH と同じように自動的に使用可能になります)。

たとえば、カスタム log4j.properties ファイルがある場合、それは Eclipse プロジェクトの「src/」ルートに配置できますし、配置する必要があります。

「spring-context.xml はどこに行くの?」という限り、私にはわかりません。このリンクは、META-INF/jsca (少なくとも WebLogic の場合) の下にある必要があることを示唆しています。

http://docs.oracle.com/cd/E15315_09/help/oracle.eclipse.tools.weblogic.doc/html/sca.html

于 2012-04-17T20:50:50.083 に答える