I have a similar problem moving a stable app from Java 5 to Java 6. The DTD used to be resolved relative to the file system location from which the referencing document was opened. Now it is resolved relative to the location from which the application was started.
Edit: April 4. What I ended up doing was creating a EntityResolver and adding it to the DocumentBuilder.