读取属性文件(Unx上的WildFly)

时间:2015-04-25 05:39:09

标签: unix properties wildfly

我在Unix机器上读取属性文件时遇到问题。 一切正常在Windows上运行。

更多详情:

  • WildFlie 8服务器,
  • 申请是ear文件,
  • 属性文件和java类在同一个包中,
  • 属性和java类在WAR文件中,位于EAR文件中。

下面的代码包含两种方法,它们在Windows上都正常工作但没有一种方法 在Unix上工作。 为什么呢?

package com.mycode.utils;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.ResourceBundle;
import org.apache.log4j.Logger;

public class LoadMessageProperty {

    public static final String MESSAGE = "messages.properties"; 
    private static final Logger logger = org.apache.log4j.Logger.getLogger(LoadMessageProperty.class.getName());

    public String getMessage(String key) {
        logger.debug("getMessage(key["+key+"]) BEGIN");
        String value = null;
        Properties prop = new Properties();
        InputStream input = null;

        try {

            input = this.getClass().getResourceAsStream(MESSAGE);
            if (input == null) {
                System.out.println("Sorry, unable to find " + MESSAGE);
            } else {
                prop.load(input);
                value = prop.getProperty(key);
            }
        } catch (IOException ex) {
            logger.error(ex);
        } finally {
            if (input != null) {
                try {
                    input.close();
                } catch (IOException e) {
                    logger.error(e);
                }
            }
        }

        logger.debug("getMessage(key["+key+"]) END");
        return value;
    }

    public String getMessageBundle(String key){
        ResourceBundle properties;
        String value = "";
        properties = ResourceBundle.getBundle("com.mycode.utils.messages");
        value = properties.getString(key);
        return value;
    }
}

1 个答案:

答案 0 :(得分:0)

好的,我明白了。 我需要添加

<resources>
    <resource>
        <directory>src</directory>
            <excludes>
              <exclude>**/*.java</exclude>
            </excludes>
    </resource>         
</resources>

到我的pom.xml