java - 放置配置文件的位置

时间:2012-02-04 01:25:19

标签: java hibernate spring

我正在编写java应用程序。我正在使用Spring MVC,Spring Security,Hibernate和Tiles。我在我的项目中使用maven。每当我执行我的网络应用程序时,我都会遇到异常:

0 [main] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization started
281 [main] INFO org.springframework.web.context.support.XmlWebApplicationContext - Refreshing Root WebApplicationContext: startup date [Sat Feb 04 03:15:50 IST 2012]; root of context hierarchy
625 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [resources/security-app-context.xml]
640 [main] ERROR org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [resources/security-app-context.xml]; nested exception is java.io.FileNotFoundException: class path resource [resources/security-app-context.xml] cannot be opened because it does not exist
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
    at ...........
    ..............

我试图将我的security-app-context.xml放在任何地方,但它没有帮助,我一直得到这个例外。

这是我的POM文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>success.green-wheels</groupId>
    <artifactId>green-wheels-project</artifactId>
    <version>1</version>
    <packaging>war</packaging>

    <name>web-app-module</name>
    <url>http://maven.apache.org</url>

    <properties>
        <org.springframework.version>3.1.0.RELEASE</org.springframework.version>
        <org.apache.tiles.version>2.2.2</org.apache.tiles.version>
        <org.hibernate.version>3.3.2.GA</org.hibernate.version>
    </properties>
    <dependencies>
        ...Some dependencies to Spring, Hibernate and so
    </dependencies>

    <build>
        <finalName>${artifactId}</finalName>
        <sourceDirectory>src</sourceDirectory>
        <resources>
            <resource>
                <directory>src/success/greenWheels/dataAccess/hibernate/resources</directory>
            </resource>
        </resources>
        <plugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                  <webResources>
                    <resource>
                      <directory>web</directory>
                    </resource>
                  </webResources>
                </configuration>
              </plugin>
        </plugins>
    </build>
</project>

这是我的目录结构: enter image description here

有什么问题?我应该在哪里放置security-app-context.xml以使其工作?

我想将所有配置文件放在一个文件夹中。我该怎么办?

2 个答案:

答案 0 :(得分:1)

如果您将/resources放在CLASSPATH下,WEB-INF/classes目录将在{{1}}。

答案 1 :(得分:0)

INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [resources/security-app-context.xml]

你是如何得到这个例外的?你的resources文件夹在哪里?我没有看到......

您是否在Spring配置中使用<import resource="resources/security-app-context.xml" />?如果是,我猜您必须使用<import resource="security-app-context.xml" />

我不确定IntelliJ IDEA,但在SpringSource Tool Suite(或Eclipse,无关紧要)我的Maven项目的结构如下:

SpringSource Tool Suite Maven project structure