I have been using the very good Tuckey urlrewrite filter on J2EE website recently and came across the following error for one of my filters.
``` {.js name=”code”} org.xml.sax.SAXParseException: The reference to entity “documentNumber” must end with the ‘;’ delimiter.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:264)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:123)
at org.tuckey.web.filters.urlrewrite.Conf.loadDom(Conf.java:208)
at org.tuckey.web.filters.urlrewrite.Conf.(Conf.java:130) ```
This exception perplexed me for a while and it took a bit of googling to find the answer as the exception lead me in the wrong direction.
Because the url filters are written in XML, they cannot contain the & character in plaintext. The answer to this annoying exception is to:
replace all & characters with &
i.e:
``` {.js name=”code”}
/test.php?foo=bar&baz=(.*)
/testing/$1
becomes
``` {.js name="code"}
/test.php?foo=bar&baz=(.*)
/testing/$1
I hope this helps anyone who comes across the same problem.