Pregunta

Tengo un env producción y prueba de env. La producción tiene win2k3 + Tomcat 6.0 o superior y unidad de red asignada a una letra de unidad para un fácil acceso (z: \ aplicación en lugar de \ Symba \ \ archivos de aplicación). Mi env prueba tiene Windows XP (todo el software es el mismo que incluye el código fuente de servlet) y la prueba también tiene la misma asignación de letra de unidad a la unidad de red.

Tomcat se está ejecutando con el mismo ID de usuario tanto en el sistema y soy capaz de acceder al archivo a través de Windows Explorer en la prueba de m / c y la producción de m / c.

Ahora el servlet en Windows XP m / c (prueba de m / c) lanza un archivo no encontrado excepción si intenta acceder a un archivo existente (accesible a través de Windows Explorer). El servlet en la producción es el mismo que en env prueba y producción servlet felizmente da el archivo cuando lo soliciten y no lanza ningún error lo que nunca.

He ver algunos de los puestos que el uso de letra de unidad no es una buena idea y debe utilizar rutas UNC lugar y yo no he probado esto todavía. Quiero saber el motivo por el servlet de prueba no se puede obtener el archivo, mientras que la producción de servlets funciona bien.

Muchas gracias por su tiempo y ayuda Bo

¿Fue útil?

Solución

¿Está ejecutando el servidor de aplicaciones como un servicio? las asignaciones de letras de unidad son fiables sólo si utiliza programas interactivos no servicios.

Hace un par de años, he tratado de resolver un problema bastante idénticos, pero, al fin, me di por vencido y solía JCIFS para acceder a los archivos.

Otros consejos

Si ejecuta Tomcat con un controlador de seguridad, el código de aplicación web es de acuerdo a la configuración por defecto sólo se permite el acceso a archivos a su directorio de implementación. Si desea cambiar las políticas de aplicación, puede hacer que en conf / catalina.policy o puede desactivar el administrador de seguridad, si desea que su código de aplicación web para obtener todos los privilegios.

Es posible que desee considerar la posibilidad de ejecutar el servicio Tomcat como el usuario que tiene acceso a la unidad asignada.

Como se ha señalado por andcoz, las asignaciones no serán de aplicación para el usuario en Windows SYSTEM que supongo está siendo utilizado para ejecutar Tomcat. Se podría cambiar la configuración del servicio que se ejecute como el usuario propietario de la asignación de unidad y verificar si el fallo sigue ocurriendo.

Relacionados

FileNotFoundException inicia cuando no existe el archivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top