Lately I encountered a weird behaviour when it comes to XML handling and transforming in a server side executed code on Domino. My code does the following:
- grab a document or design element from an NSF
- export it to XML via the DXLExporter
- grab the XML and translate it with XSL via a javax.xml.transform.Transformer
- use the translated XML for further use
I use the XSL Transformer with some options to e.g. ignore the DTD schema that is defined in the exported XML from the exporter as it caused problems. Though I try to ignore it, it seems that it's still used somehow - anyway, it works - as long as your Domino server runs on Windows. In Linux I get this error:
23.08.2017 08:40:40 HTTP JVM: java.io.FileNotFoundException: /local/notesdata/xmlschemas/domino_9_0_1.dtd
This error is comprehensible as the folder xmlschemas is usually located in the program folder of Domino and not a subfolder in the data folder. It's the same in Windows but for some reason the code assumes this location when executed on Linux. My code does not have any static reference to that schema file.
A workaround
My workaround is to create a symlink inside the data folder to the folder in the binaries which is something like /opt/ibm/domino/notes/latest/linux/xmlschemas.
Call for action
This post does not provide a real solution or explanation, yet, but I hope for some clarification - maybe it's worth a PMR. So, if you have any ideas of how to explain this, then please let me know in the comments or drop me a note elsewhere.
Update 24.08.2017
I just created a PMR for this as I could reproduce this with a simplified example in a separate application so I can exclude a problem in our product (which in this case is aveedo). Let's see, what happens - I'll keep you updated.
IBM was able to reproduce the issue and created a new defect report filed under APAR #LO93064 / SPR #TPONARCDU6.