Ошибка в строке -1 при использовании SimpleXml для разбора xml - PullRequest
3 голосов
/ 01 сентября 2011

При синтаксическом анализе моих XML-файлов с помощью Simple я получаю сообщения об ошибках, подобных следующей:

org.simpleframework.xml.core.ValueRequiredException: 
Unable to satisfy ... on field 'id' private String Foo.id 
for class Foo at line -1

Что мне нужно изменить, чтобы получить реальный номер строки?

[РЕДАКТИРОВАТЬ] Вот суть: Демонстрация для проблемы номера строки SimpleXml

Я использую simple-xml: 2.6.1 и junit: 4.9

1 Ответ

2 голосов
/ 01 сентября 2011

Зависит от того, где он запущен. Если вы работаете в JDK 1.5, без StAX в пути к классам это означает, что вы используете DOM, поэтому вы всегда получите -1 при ошибке. Если вы используете JDK 1.5 или выше с StAX в пути к классам, то StAX не поддерживает номера строк (возможно, попробуйте другую библиотеку, я рекомендую Woodstox ).

[EDIT] Если вы хотите попробовать Woodstox и используете Maven, добавьте это в свой POM:

<dependency>
    <groupId>org.codehaus.woodstox</groupId>
    <artifactId>woodstox-core-asl</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.codehaus.woodstox</groupId>
    <artifactId>stax2-api</artifactId>
    <version>3.1.1</version>
</dependency>

Это версия, которая использует Apache License 2.0. Если вы предпочитаете LGPL 2.1, замените -asl на -lgpl.

...