Si no me equivoco, por lo que pones, el servidor que usa netbeans crea una carpeta temporal con el proyecto, por lo que si le agregas un archivo, aunque tu lo tengas en la carpeta web de tu proyecto, en ese localhost temporal no esta.
Yo lo que hacia, era trabajar en local con una direccion y en remoto con otra. Simplemente, crea una constante path con los dos valores y en funcion de si vas a desplegar la aplicacion, o si vas a hacer pruebas con netbeans usas una u otra. Al menos esa es la conclusion a la que llegue cuando tuve ese problema. Por ejemplo, lo que yo uso es:
Código:
public class Constantes{
public static final String PATH = "/usr/local/shared/tomcat/jesuscoro/webapps/biblioteca/site";
//public static final String PATH = "D:/Mis documentos(jesus)/NetBeansProjects/biblioteca/web/site";
}
Donde le dices la direccion que utlizar pones la constante y luego, solo tienes que comentar una linea y descomentar la otra (o viceversa) en funcion de que vayas a hacer.
Espero que te sirva