El fichero te lo creará en el servidor, aunque solo le pongas la ruta relativa. Lo que pasa es que no lo encuentras
. Si en vez de
Código:
salidaBytes = new FileOutputStream(new File("ruta/calendario.xml"));
pones
Código:
File aFile = new File("ruta/calendario.xml");
System.err.println("El fichero es: " + aFile.getAbsolutePath());
salidaBytes = new FileOutputStream(afile);
Verás donde te lo está creando. El fichero se crea en el servidor, si estamos hablando de JSP/servlets, y el API fileupload es para enviar ficheros desde el cliente al servidor. Para simplemente crearlos en el servidor no hace falta.
S!