Ошибка компиляции JSP при изменении анализатора XML к Xerces

StackOverflow https://stackoverflow.com/questions/2669668

Вопрос

Все, я работаю над Java WebApp, который мы развертываем в сервере Web App. Я делал анализ XML для новой части приложения и понял, что наше приложение использовало Классы смолы сделать разбор. Я хотел уйти от этого и использовать что-то более стандартное по ряду причин, поэтому я устанавливаю эти системные свойства в моем файле Config (и добавил банку Xerces в мой класс):

<system-property javax.xml.parsers.DocumentBuilderFactory="org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/>

<system-property javax.xml.parsers.SAXParserFactory="org.apache.xerces.jaxp.SAXParserFactoryImpl"/>

И теперь я получаю ошибки компиляции JSP на нескольких страницах (я думаю, что в построенном парсере смолы был более снисной). Ошибка читает:

org.xml.sax.SAXParseException: The value of attribute "title" associated with an element type "display:column" must not contain the '<' character.

И «Дисплей: столбец» на некоторых страницах действительно содержит разметку в атрибуте «Title». Вот пример:

<display:column scope='col' class=" appealColorBG  selectAllWidth" 
    title="<span class='centerThis'><label for='selectAll'>Select All</label><br />
            <input type='checkbox' name='selectAll' 
            id='selectAll' 
            onClick='selectAllCheckboxes();'/></span> " >

Это какой-то уродливый код JSP, я знаю, но это также код, который уже в производстве, поэтому я нерешитель, чтобы изменить его.

Кто-нибудь знает о том, что я могу установить Xerces так, чтобы он позволил JSP компилировать, как есть?

Это было полезно?

Решение

Это, безусловно, уродливый код JSP.

Если вы используете анализатор XML на нем, у вас есть проблема. Значения атрибутов в действительном XML не могут содержать символ «<», так как Xerces говорит вам.

Сомнительно, что вы можете сказать Xerces, чтобы принять это, но исправление XML будет лучшей идеей, чем говорить анализатор XML, в любом случае принятие неправильного XML.

Вы, вероятно, хотите вернуться к использованию классов смолы до тех пор, пока не сможете кормить SCERCES PORDE XML, или настроить смолу, чтобы не использовать анализатор XML как часть его компиляции JSP - см. Комментарии.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top