Вы, кажется, запускаете его внутри IDE. По некоторым странным причинам, хотя классы JAXB включены в rt.jar JRE,
➜ lib jar tvf rt.jar| grep AnnotationReader
4199 Fri Jan 29 15:35:18 PST 2016 com/sun/xml/internal/bind/v2/model/annotation/AbstractInlineAnnotationReaderImpl.class
3140 Fri Jan 29 15:35:14 PST 2016 com/sun/xml/internal/bind/v2/model/annotation/AnnotationReader.class
442 Fri Jan 29 15:35:14 PST 2016 com/sun/xml/internal/bind/v2/model/annotation/RuntimeAnnotationReader.class
9846 Fri Jan 29 15:35:22 PST 2016 com/sun/xml/internal/bind/v2/model/annotation/RuntimeInlineAnnotationReader.class
1217 Fri Jan 29 15:35:26 PST 2016 com/sun/xml/internal/ws/model/ReflectAnnotationReader$1.class
1332 Fri Jan 29 15:35:26 PST 2016 com/sun/xml/internal/ws/model/ReflectAnnotationReader$2.class
1278 Fri Jan 29 15:35:26 PST 2016 com/sun/xml/internal/ws/model/ReflectAnnotationReader$3.class
1166 Fri Jan 29 15:35:26 PST 2016 com/sun/xml/internal/ws/model/ReflectAnnotationReader$4.class
3563 Fri Jan 29 15:35:26 PST 2016 com/sun/xml/internal/ws/model/ReflectAnnotationReader.class
, они недоступны для вашего приложения во время выполнения.
Однако, если я запускаю приложение таким образом:
➜ target java -cp ./classes com.misc.common.ReadXMLFileJaxb
Book [firstName=null, lastName=Blo, age=33]
т.е. из командной строки, используя стандартную структуру Maven, он, кажется, запускается.
Я полагаю, что ваш book.xml несколько неправильный. Он содержит встроенный элемент person
, а Book.java - нет. Вы можете исправить это.
Попробуйте поместить в свой тег nlog следующее:
<nlog throwExceptions="true" internalLogFile="c:\nlog.txt" internalLogLevel="Debug" />
Это может помочь определить, что проблема
NLog allows for logging the internals of the framework itself.
Enable "debug level for your internal logging" for NLog and see what's going wrong.