barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)
Показаны сообщения с ярлыком Xalan. Показать все сообщения
Показаны сообщения с ярлыком Xalan. Показать все сообщения

понедельник, 10 сентября 2012 г.

Xalan: двойной CR в CDATA-секциях

Наткнулся на баг в библиотеке Xalan (являющейся в моем случае реализацией по-умолчанию javax.xml.transform.TransformerFactory): при сериализации в Windows XML-документа с CDATA-секциями переводы строки в этих секциях представляются последовательностями CR-CR-LF вместо CR-LF. В баг трекере апача соответствующая заявка лежит уже давным-давно без ответа: https://issues.apache.org/jira/browse/XALANJ-2547. Выход - например, заменять вручную в полученной строке "\r\r\n" на "\r\n":

public static String domToString(Document dom) throws TransformerException
{
Source source = new DOMSource(dom);
StringWriter stringWriter = new StringWriter();
Result result = new StreamResult(stringWriter);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
transformer.transform(source, result);
return stringWriter.getBuffer().toString().replace("\r\r\n", "\r\n");
} 

четверг, 5 апреля 2012 г.

java.lang.ClassNotFoundException: org.apache.xpath.compiler.FuncLoader при запуске приложения, использующего КриптоПРО JCP, при том, что xalan.jar в Classpath есть

Проблема:

При запуске приложения, использующего КриптоПРО JCP, валится исключение:
java.lang.ClassNotFoundException: org.apache.xpath.compiler.FuncLoader
, при том, что в Classpath xalan.jar и все необходимые ему jar-ники есть.

Причина:

В новых версиях Xalan (по крайней мере, в 2.7.1) действительно нет класса FuncLoader. 

Решение:

Использовать Xalan версии 2.6.