2015-03-24 14 views
0

我正在嘗試使用Commons-configuration API讀取放置在src/main/resources文件夾中的config.properties文件,以供我的maven web項目使用。我可以在沒有任何問題的情況下正常使用Maven項目,但在Web項目中,這種方式不起作用。這是我的pom.xml無法在maven web項目中使用Commons Configuration讀取config.properties

<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>edu.uta.cse</groupId> 
<artifactId>SpringSecurity</artifactId> 
<packaging>war</packaging> 
<version>0.0.1-SNAPSHOT</version> 
<name>CraiglistWebApp</name> 
<url>http://maven.apache.org</url> 

<properties> 
    <jdk.version>1.7</jdk.version> 
    <spring.version>4.1.1.RELEASE</spring.version> 
    <jstl.version>1.2</jstl.version> 
    <junit.version>4.11</junit.version> 
    <logback.version>1.0.13</logback.version> 
    <spring.security.version>3.2.3.RELEASE</spring.security.version> 
    <jcl-over-slf4j.version>1.7.5</jcl-over-slf4j.version> 
</properties> 

<dependencies> 

    <dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>aws-java-sdk</artifactId> 
     <version>1.9.20.1</version> 
    </dependency> 

    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 


    <!-- Spring Core --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>${spring.version}</version> 
     <exclusions> 
      <exclusion> 
       <groupId>commons-logging</groupId> 
       <artifactId>commons-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>jcl-over-slf4j</artifactId> 
     <version>${jcl-over-slf4j.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>ch.qos.logback</groupId> 
     <artifactId>logback-classic</artifactId> 
     <version>${logback.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-configuration</groupId> 
     <artifactId>commons-configuration</artifactId> 
     <version>1.6</version> 
    </dependency> 

    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>2.5.1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-core</artifactId> 
     <version>2.5.1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-annotations</artifactId> 
     <version>2.5.1</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-fileupload</groupId> 
     <artifactId>commons-fileupload</artifactId> 
     <version>1.3</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-beanutils</groupId> 
     <artifactId>commons-beanutils</artifactId> 
     <version>1.9.2</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-collections</groupId> 
     <artifactId>commons-collections</artifactId> 
     <version>3.2.1</version> 
    <!-- <optional>true</optional> --> 
    </dependency> 



    <!-- Spring Security --> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-web</artifactId> 
     <version>${spring.security.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-config</artifactId> 
     <version>${spring.security.version}</version> 
    </dependency> 

    <!-- jstl --> 
    <dependency> 
     <groupId>jstl</groupId> 
     <artifactId>jstl</artifactId> 
     <version>${jstl.version}</version> 
    </dependency> 

</dependencies> 


<build> 
    <finalName>CraiglistWebApp</finalName> 
    <plugins> 
     <!-- Eclipse project --> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-eclipse-plugin</artifactId> 
      <version>2.9</version> 
      <configuration> 
       <!-- Always download and attach dependencies source code --> 
       <downloadSources>true</downloadSources> 
       <downloadJavadocs>false</downloadJavadocs> 
       <!-- Avoid type mvn eclipse:eclipse -Dwtpversion=2.0 --> 
       <wtpversion>2.0</wtpversion> 
      </configuration> 
     </plugin> 

     <!-- Set JDK Compiler Level --> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>${jdk.version}</source> 
       <target>${jdk.version}</target> 
      </configuration> 
     </plugin> 

     <!-- For Maven Tomcat Plugin --> 
     <plugin> 
      <groupId>org.apache.tomcat.maven</groupId> 
      <artifactId>tomcat7-maven-plugin</artifactId> 
      <version>2.2</version> 
      <configuration> 
       <path>/CraiglistWebApp</path> 
      </configuration> 
     </plugin> 

    </plugins> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <!-- <filtering>true</filtering> --> 
     </resource> 
    </resources> 

</build> 

,我使用下面的代碼

static { 

    Configuration config = null; 
    try { 

     //config = new PropertiesConfiguration("resources/config.properties"); this package is placed in src/main/java and using this it works perfectly fine 
     config = new PropertiesConfiguration("src/main/resources/config.properties"); // this doesn't seem to work 

    } catch (ConfigurationException e) { 
     e.printStackTrace(); 
    } 

    UPLOAD_LOCATION = config.getString("image.upload.location"); 
    TABLE_NAME = config.getString("table.name");} 

我錯過了在pom.xml中的任何閱讀本文件。請幫忙!

回答

0

當您創建PropertiesConfiguration對象的實例時,它將搜索您指定的文件的當前類路徑。使用Maven Web項目時,src/main/resources文件夾應該已經包含在類路徑中,因此不需要在文件名前面加上目錄。換句話說,這應該工作:

config = new PropertiesConfiguration("config.properties"); 
+0

它現在工作...非常感謝! – 2015-03-25 01:59:30