0

简而言之:当我这样做时,我不知道将“spring-context.xml”文件放在哪个文件夹中:

ApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");

In Long:我基本上知道类路径是什么。它曾经是一个环境变量,告诉 Java 项目在哪里寻找 jars 和其他资源。好像用的不多。但是在 Eclipse 中,它谈到了通过进入 Java 构建路径来设置类路径。

当我想使用类路径(上图)查找 Spring“spring-context.xml”文件时,我不明白这与 Eclipse Java 构建路径有什么关系,如果有的话!当我使用上述语句时,WebApp 会查看哪些文件夹?我通常听到人们说,“在类路径中”,但这并没有告诉我太多,因为我不想使用环境变量,而且 Eclipse Java 构建路径似乎与查找 spring-context.xml 没什么关系文件。

更多详情

起初我担心更多的细节会混淆情况,但也许他们掌握了关键。

我正在使用 Vaadin 创建一个 Web 应用程序。我正在按照他们的指示将 Spring 上下文导入 Vaadin。我创建了一个 Spring Helper 类:

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 资源”项目文件夹的“src”根目录中的文件将自动进入 Web 应用程序的“类”子目录(即,将自动在运行时 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 回答