Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

351
Vistas
cargando archivo al directorio raíz web usando jsf Primefaces

Estoy tratando de almacenar el logotipo del cliente en "src/main/webapp/clientImage/clientcode" . El directorio de código de cliente se creará en función de diferentes 2 clientes.
Por ejemplo, si el código del cliente es PRUEBA, la ruta completa será como "src/main/webapp/clientImage/TEST" y cuando carguemos la imagen del cliente, el logotipo del cliente aparecerá en el directorio "PRUEBA".
Entonces, después de cargar el logotipo del cliente (suponga que el nombre de la imagen es "test.jpeg", el directorio completo será "src/main/webapp/clientImage/TEST/test.jpeg" . El código para cargar el logotipo del cliente es:

 `public boolean upload(UploadedFile uploadFile) { String LOGO_PATH= "/clientImage/"; String fileName = uploadFile.getFileName(); String realPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath(LOGO_PATH + selectedClient.getClientCode()); File f = new File(realPath); if (!f.exists()) { f.mkdirs(); logger.debug("Directory created : {}", f.getName()); } try { new UserUtils().copyFile(fileName, uploadFile.getInputstream(), realPath); selectedClient.setLogo(fileName); saveClient(); FacesMessage msg = new FacesMessage("Success! ", uploadFile.getFileName() + " set as logo."); FacesContext.getCurrentInstance().addMessage(null, msg); return true; } catch (IOException e) { logger.error("{}", e); return false; } }

`

Problema:: Mi problema es cuando estoy cargando el logotipo para el cliente de PRUEBA, la ruta real que obtengo es "C:\Users\narendra\tls_workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ilock \ImagenCliente\PRUEBA"

donde se supone que realPath es "src/main/webapp/clientImage/TEST/test.jpeg" y el logotipo debe almacenarse en el directorio TEST, pero el logotipo ni siquiera ingresa a ese directorio

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

No estás ejecutando la fuente en sí. Sus archivos fuente se compilan en clases, luego sus clases y recursos se empaquetan en un archivo de aplicación web, un archivo WAR. Por lo tanto, su ruta real no está en src, está donde se implementa su WAR. En su caso, está en los archivos tmp de Eclipse, porque lo está ejecutando desde Eclipse.

La idea de cargar archivos en el directorio de origen no tiene sentido, porque su directorio de origen no se implementará en el servidor, sino el WAR empaquetado. Si vende su aplicación web, probablemente no enviará su código fuente a su cliente; le enviará un ejecutable, es decir, un archivo WAR.

Tampoco debe mantener los datos del usuario en su WAR. Su WAR debe ser inmutable durante su tiempo de ejecución. En su lugar, debe solicitar a su servidor o Java un directorio temporal o algún tipo de directorio de datos. Por ejemplo, los servidores Wildfly tienen estas propiedades del sistema:

jboss.server.data.dir - directorio que utilizará el servidor para el almacenamiento persistente de archivos de datos jboss.server.temp.dir - directorio que utilizará el servidor para el almacenamiento de archivos temporales

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda