• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

282
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

almost 3 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

almost 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda