Estamos aumentando nuestra aplicación de JBoss 4 a 6. JBoss¿Por qué no puedo abrir un JBoss vfs:/URL?
Un par de piezas de nuestra aplicación consigue entregado al cliente de una manera inusual: frascos se buscan dentro de nuestra aplicación y se envían al cliente desde una servlet, donde el cliente los extrae para ejecutar ciertas funciones de soporte.
En JBoss 4 veríamos estos archivos comprimidos con el cargador de clases y encontraríamos un jar: // URL que se usaría para leer el contenedor y enviar su contenido al cliente.
En JBoss 6 cuando realizamos la búsqueda obtenemos un vfs:/URL. Entiendo que esto es del paquete org.jboss.vfs. Desafortunadamente, cuando llamo a openStream() en esta URL y leo de la transmisión, inmediatamente obtengo un EOF (read() devuelve -1).
¿Qué ofrece? ¿Por qué no puedo leer el recurso al que se refiere esta URL?
Intenté intentar acceder a los paquetes VFS subyacentes para abrir el archivo a través de la API JBoss VFS, pero la mayoría de la API parece ser privada, y no pude encontrar una rutina para traducir desde un vfs:/URL a un objeto VFS VirtualFile, por lo que no pude llegar a ningún lado.
Puedo tratar de encontrar el archivo en el disco dentro de JBoss, pero ese enfoque suena muy propenso a fallas en la actualización.
Nuestro antiguo enfoque era utilizar Java Web Start para distribuir los archivos jar al cliente y luego buscarlos en el caché de Java Web Start para extraerlos. Pero eso se rompió en cada actualización menor de Java porque el diseño de la memoria caché cambió.
org.apache.commons.vfs. *; esta importación también ayuda en este sentido. –
Lamento decir que JBoss VFS y Apache VFS tienen nombres idénticos pero son productos diferentes. No es probable que el uso de clases Apache VFS ayude con los problemas de JBoss VFS. Además, es poco probable que el uso de la documentación de Apache VFS ayude. Y JBoss no documentó su VFS muy bien, por lo que la mayoría de la documentación que encontrará es para Apache. – skiphoppy