Primero aclarar que cuando me refería a usar rutas relativas, debería haberme explicado mejor, en el caso del que estamos hablando me refería a que hay que crear la ruta absoluta mediante las herramientas que nos proporciona java. Al acceder a un fichero mediante getResource sí suelen usarse rutas relativas de verdad.
Cuando trabajamos con aplicaciones web, se supone que nuestro código debe ser lo más portable posible, por lo que usar rutas absolutas como literales es muy mala idea. Generalmente a nosotros sólo nos va a interesar lo que ocurre dentro de nuestro proyecto, por eso java nos da herramientas como
https://docs.oracle.com/cd/E17802_01...va.lang.String)
con
Cita: String path = getServletContext().getRealPath("WEB-INF/");
tendrás la ruta absoluta a WEB-INF independientemente de si lo ejecutas en eclipse o en un servidor. Eso sí, la tienes que recuperar en el servlet.
Como curiosidad, con tu código y la ruta absoluta "directorio.xml" , no da error al crear el fichero pero no se crea físicamente en ningún sitio, y no sé la razón.