Есть ли список возможных исключений IllegalAnnotationException, на которые я могу ссылаться? - PullRequest
0 голосов
/ 25 апреля 2019

Мне было поручено взять существующую структуру объектов и преобразовать ее в XML. Я новичок в JAXB и надеюсь использовать ее.Однако, когда я пытаюсь выполнить маршалинг данных, возникает следующее исключение: «3 счета IllegalAnnotationExceptions»

Раньше было 20 + исключений.Тем не менее, я смог исследовать и выяснить, какие практики не соблюдались, которые вызывали ошибки.Тем не менее, я не могу найти эти три ошибки.Есть ли где-нибудь список возможных причин этого исключения?Я хотел бы показать код, однако эти ошибки могут быть в 22 классах.

Заранее спасибо.

РЕДАКТИРОВАТЬ

Вот ошибканиже.Код выполняется из командной строки, поэтому, пожалуйста, обратитесь к исключению «Причины:».На самом деле существует огромное количество кода, который нужно прочесать, и публиковать здесь нецелесообразно.Вот почему я прошу список ссылок на возможные триггеры для этого исключения.Существует ли такой список?

java.lang.IllegalStateException: Failed to execute CommandLineRunner
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:735) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE]
    at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:716) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE]
    at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:703) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:304) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE]
    at com.xdome.XdomeApplication.main(XdomeApplication.java:14) [classes/:na]
Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 3 counts of IllegalAnnotationExceptions
    at com.sun.xml.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:106) ~[jaxb-impl-2.2.3-1.jar:2.2.3]
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:489) ~[jaxb-impl-2.2.3-1.jar:2.2.3]
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:319) ~[jaxb-impl-2.2.3-1.jar:2.2.3]
    at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1170) ~[jaxb-impl-2.2.3-1.jar:2.2.3]
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:145) ~[jaxb-impl-2.2.3-1.jar:2.2.3]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_144]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_144]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_144]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_144]
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:247) ~[na:1.8.0_144]
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:234) ~[na:1.8.0_144]
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:441) ~[na:1.8.0_144]
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:641) ~[na:1.8.0_144]
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:584) ~[na:1.8.0_144]
    at com.xdome.XMLGenerator.run(XMLGenerator.java:27) ~[classes/:na]
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:732) [spring-boot-1.5.12.RELEASE.jar:1.5.12.RELEASE]
    ... 6 common frames omitted

1 Ответ

0 голосов
/ 14 мая 2019

Поработав над этим вопросом, я подумал, что пойду погреться и оставлю несколько быстрых мыслей.К сожалению, похоже, что это общая ошибка.Из того, что я могу сказать, нет общего списка ошибок для этих исключений, потому что это должно быть универсальным исключением, когда все остальное терпит неудачу.Однако вот несколько моментов, с которыми я столкнулся при работе над моим проектом:

При работе с JAXB убедитесь, что у всех желаемых классов, которые вы надеетесь маршалировать, есть пустой конструктор аргументов по умолчанию.Я предполагаю, что JAXB просто нужно выполнить некоторые базовые операции POJO, и без конструктора без аргументов это было бы невозможно.

public class A {

    public A(){}

}

Другая проблема, с которой я столкнулся, связана с наследованием.Многие из предыдущих объектов наследовали от абстрактного класса, который содержал общие поля.Однако этот абстрактный класс не был напрямую частью иерархии XML.Казалось, что включение абстрактного класса в качестве суперкласса приводит к исключению IllegalAnnotationsException.Поэтому, если класс B является частью структуры XML, НЕ делайте следующее:

public abstract class A {
    ...
}


public class B extends A {

}

И, наконец, исключение IllegalAnnotationsException можно использовать за неправильное использование аннотации JAXB.При получении вышеупомянутого исключения дважды проверьте, чтобы убедиться, что вы аннотируете предполагаемые поля и классы.Поскольку я новичок в JAXB, я столкнулся с этими проблемами.Вы можете найти документацию JAXB на веб-сайте Oracle: https://docs.oracle.com/javase/8/docs/technotes/guides/xml/jaxb/index.html

Я надеюсь, что эта информация поможет хотя бы нескольким людям.По крайней мере, это последний вопрос переполнения стека без ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...