[java] ¿Cómo acceder al sistema de archivos desde un EJB 3?



Answers

Si sabe que nunca agrupará su aplicación (o que podrá mapear en red la unidad), simplemente use java.io. *.

Asegúrese de introducir una configuración adecuada con respecto a la ubicación raíz del almacenamiento de sus archivos.

Question

Me gustaría saber cómo puedo acceder al sistema de archivos desde un bean EJB 3?

Busqué en Internet sobre el tema y no encontré una buena respuesta.

Algunos sugieren usar java.io/java.nio aunque la especificación prohíbe este uso. La mayoría de los servidores de aplicaciones parecen permitir el acceso a esta API de todos modos.

Otra idea sería usar un conector JCA para acceder al sistema de archivos o a un directorio LDAP.

Lo que quiero hacer es evitar el uso de BLOB en la base de datos cuando un archivo simple sería una solución mucho mejor en términos de rendimiento y recursos utilizados.

Como resolverías este problema?




El acceso simple a archivos no es de naturaleza transaccional. A menos que genere soporte para operaciones transaccionales (no tengo ni idea de cómo es el trabajo de un administrador de recursos), tendrá que preocuparse por la semántica transaccional de la operación que está realizando. Si construye soporte de transacciones, hay muy poco que haya ganado en rendimiento (parte de la pérdida de rendimiento en las bases de datos se debe a toda la contabilidad realizada por el administrador de recursos). Y no olvides el primo cercano de la gestión de transacciones: concurrencia. A menos que empiece a escribir en un nuevo archivo para cada solicitud, los problemas de simultaneidad le morderán más o menos.

Encontrará mucha más información en las preguntas frecuentes de Sun Blueprint sobre las restricciones de EJB .

A menos que esté limpio con una buena justificación técnica, no debe intentar acceder al sistema de archivos desde los EJB. Un muy buen ejemplo sería un marco de registro (no de auditoría): hay relativamente menos daño al acceder al sistema de archivos para escribir archivos de registro, dado que el registro no tiene que ser una operación de transacción, es decir, no es necesario revertir las escrituras a un archivo. archivo de registro; no es aceptable escribir parcialmente.






Links