new FileReader("custom.xml")
Relative file paths are meaningless in web applications because there is no concept of a "current directory".
You will need to locate the file either by using an absolute file path (provided by a context param, property file or some other means other than hard-coding), or if the file is located within the web application, you can employ getResourceAsStream() or getRalPath() to locate the file.