Como acessar um arquivo atraves de uma aplicação no servidor Java EE?

Olá pessoal, meu problema é o seguinte:

Estou desenvolvendo uma aplicação que o foco é demonstrar a segurança em Web Services, estou usando o framework XWSS 2.0, pra quem conhece.

Para que isso seja feito preciso acessar um arquivo .properties e também um par de chaves de criptografia Java Keystore. Ambos estão contidos dentro da pasta WEB-INF da aplicação, preciso acessalos através de uma classe da minha aplicação para obter os dados contidos neles.

Já tentei da seguinte forma, mas não obtive sucesso:

Properties properties = new Properties();
InputStream in = new FileInputStream(“WEB-INF/server-security-env.properties”);
properties.load(in);

Qual é a melhor maneira de se obter a referencia desses arquivos?

Grato a todos, espero respostas :smiley:

Ola,

Tava com o mesmo problema dai fiz dois metodos que é o seguinte

public String getPropJar(String Key) {
    	Properties Props;
    	if (Props == null) {
    		Props = loadPropsJar("server-security-env.properties");
    	}
    	 String txt = Props.getProperty(Key);
       System.out.println("getProp: "+Key+" = "+txt);
       return txt;
   }

public Properties loadPropsJar(String pFileName){
        
        ClassLoader loader = null;
        
        try {
            
            if (Props == null) {
            	Props = new Properties();
                loader = Thread.currentThread().getContextClassLoader();
                Props.load(loader.getResourceAsStream(pFileName));
            }
            
            return Props;
            
        } catch (Exception e) {
            /*Logging.log("Erro: "+e.getMessage(),Logging.NIVEL_ERROR);*/
            return null;
        }
        
    } 

1)recebe a chave pra procurar no teu properties
2)procura teu arquivo properties.
ve c funciona…
espero ter ajudado

Olá Jsatriani,
Já tinha tentado através desse metodo com o classloader, só que sempre dava Null no meu obj properties, sinal que não tinha achado o arquivo (eu acho)…
Bom vou fazer mais uns testes, valew :wink:

ContextUtils.getRequest() = HttpServletRequest

Use ContextUtils.getRequest().getRealPath(“TMP_PDF”)+"/"+nomeArquivo;

Ou OrderedProperties.load(“configuration.properties”);

public class OrderedProperties extends java.util.Properties {

  /**
 * 
 */
private static final long serialVersionUID = 1L;
ArrayList orderedKeys = new ArrayList();
  
  public OrderedProperties() {
    super();
  }
  public OrderedProperties(java.util.Properties defaults) {
    super(defaults);
  }
  public synchronized Iterator getKeysIterator() {
    return orderedKeys.iterator();
  }
  public static OrderedProperties load(String name)
                                  throws IOException {
    OrderedProperties props = null;
    java.io.InputStream is =
      OrderedProperties.class.getResourceAsStream(name);
    if ( is != null ) {
      props = new OrderedProperties();
      props.load(is);
      return props;
    } else {
      if ( ! name.startsWith("/") ) {
        return load("/" + name);
      } else {
        throw new IOException("Properties could not be loaded.");
      }
    }
  }
  @SuppressWarnings("unchecked")
public synchronized Object put(Object key, Object value) {
    Object obj = super.put(key, value);
    orderedKeys.add(key);
    return obj;
  }
  public synchronized Object remove(Object key) {
    Object obj = super.remove(key);
    orderedKeys.remove(key);
    return obj;
  }

}