Foros del Web » Programación para mayores de 30 ;) » Java »

Modificar un fichero .properties en Struts

Estas en el tema de Modificar un fichero .properties en Struts en el foro de Java en Foros del Web. Hola, mi problema está al trabajar con un fichero de configuración donde almaceno Login=password de los usuarios de mi aplicacion(clave=valor). Para sacar la información accediendo ...
  #1 (permalink)  
Antiguo 24/11/2008, 04:58
 
Fecha de Ingreso: agosto-2008
Mensajes: 57
Antigüedad: 15 años, 8 meses
Puntos: 0
Modificar un fichero .properties en Struts

Hola, mi problema está al trabajar con un fichero de configuración donde almaceno Login=password de los usuarios de mi aplicacion(clave=valor).
Para sacar la información accediendo al fichero ya he encontrado la solución y me funciona, lo malo es a la hora de acceder al fichero para modificarlo,(introducir nuevos users o modificar contraseñas). He mirado mucho por internet pero no he encontrado nada concreto que me sirva.
Al final he decidido guardar el fichero de configuracion en Web-inf/usuarios con el nombre de usuarios.properties y trabajo desde una clase en mi estructura de clases.

Lo he intentado con rutas absolutas y relativas, acceso con File y directamente, pero en ninguno de los casos me deja acceder al fichero dentro de la estructura de struts(Solo lo consegui creando el fichero fuera...). Pongo el codigo actual que uso, aunque no funciona :(

Código PHP:
public class PropiedadesUsers {

       private 
String ficheroParametros "../usuarios/usuarios.properties";
...
//Aqui cargo el fichero properties
public PropiedadesUsers() {

           
InputStream is=Thread.currentThread().getContextClassLoader().getResourceAsStream(ficheroParametros);
               try {
                   
prop.loadis );     // Cargo propiedades desde InputStream
            
}
               catch (
IOException e) {
                   
mensajeError = new String("Mensaje de error: " e.toString() );
           }
       }

//Aqui saco los valores por la clave, defecto en caso de que no la encuentre...

public String getParametro(String claveString defecto) {
              
String retorno defecto;
              try {
             
retorno prop.getProperty(clavedefecto);
              }
              catch (
Exception e) {
             
retorno defecto;
              }
              
finally {
             return 
retorno;
              }
           }
//Esto es lo que no me funciona, asi que evidentemente estará mal xD
//se supone que es donde intento modificar el file usuarios.properties, pero 
//siempre me da error al intentar acceder, me pone que no encuentra la ruta, o
// que no es una fichero, ruta o directorio valido

       
public void setParametro(String claveString password){

           
File f=new File(ficheroParametros);
           
System.out.println(f.getAbsolutePath());
           
FileOutputStream outnull;
           
prop.setProperty(clavepassword);

           try {
               
out = new FileOutputStream(f);
               
prop.store(out"Usuarios/claves");
           } catch (
IOException e) {
               
e.printStackTrace();
           }
       } 
El problema es al acceder con la ruta relativa, ya que al crear el fichero me lo crea en c:. El println me muestra esto:
D:\Archivos de programa\EasyEclipse Server Java 1.2.2.2\..\usuarios\usuarios.properties

Lo cual no tiene muy buena pinta

Lo he probado de alguna manera más, pero esta es la última con la que estaba.
Si alguién sabe como puede hacerse, agradecería mucho que me indicase como..
1 saludo y gracias
  #2 (permalink)  
Antiguo 24/11/2008, 12:41
 
Fecha de Ingreso: agosto-2008
Mensajes: 57
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Modificar un fichero .properties en Struts

Bueno mas o menos he resuelto mi problema... Lo dejo aqui posteado por si a alguien le sirviese.

El problema era acceder a la direccion del fichero desde las clases de autenticacion, así que lo que hice fue pasarle la ruta del servlet como parametro de la funcion de autenticacion. No se si habrá otra manera, pero de momento esto funciona bien. pongo el codigo:
Código PHP:
vo=aServices.Autenticar(loginpasswordservlet.getServletContext().getRealPath(""));
//Esto en el servlet action desde donde autenticamos
...

//ficheroParametros es el nombre del fichero
//Constructor que carga el archivo de propiedades
       
public PropiedadesUsers(String ruta) {

           
ruta=ruta+"/WEB-INF/usuarios/";
            
           
FileInputStream is null;
           try {
                   
is = new FileInputStream(ruta+ficheroParametros);
                   
prop.loadis );     // Cargo propiedades desde InputStream
            
}
               catch (
IOException e) {
                   
mensajeError = new String("Mensaje de error: " e.toString() );
           }
       }

       
//función para la obtención del parámetro por la clave
       
@SuppressWarnings("finally")
    public 
String getParametro(String claveString defecto) {
              
String retorno defecto;
              try {
             
retorno prop.getProperty(clavedefecto);
              }
              catch (
Exception e) {
             
retorno defecto;
              }
              
finally {
             return 
retorno;
              }
           }

       
//Sobrecargado de la función de obtener el parámetro
       
public String getParametro(String clave) {
              return 
getParametro(clave"");
           }

       public 
void setParametro(String claveString passwordString ruta){

           
ruta=ruta+"/WEB-INF/usuarios/";
           
FileOutputStream outnull;
           
prop.setProperty(clavepassword);

           try {
               
out = new FileOutputStream(ruta+ficheroParametros);
               
prop.store(out"Usuarios/claves");
           } catch (
IOException e) {
               
e.printStackTrace();
           }

       } 
Espero que a alguien le valga, porque a mi me hubiera venido de perlas, que no he encontrado nada parecido.
1 saludo
  #3 (permalink)  
Antiguo 09/02/2009, 13:30
 
Fecha de Ingreso: febrero-2009
Mensajes: 1
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Modificar un fichero .properties en Struts

Hola una pregunta: el string "ruta" que informacion te da? y desde donde la obtenes??
Te dice todo el path absoluto?

Yo tambien estoy con un problema que no se como tener acceso a un archivo de texto que guarda texto que ingresa el usuario desde la pagina (donde hay campos para rellenar; campos de texto, textarea,...). El problema es que no se como hacer para darle una ruta relativa y no una absoluta (con la absoluta sí anda).

gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:25.