2011-01-18 3 views
2

Я использую @XmlAccessorType(XmlAccessType.NONE) в package-info.java для my.package, что означает, что JAXB должен заботиться только об аннотированных элементах. Однако, когда я бегу мой JUnit тест с ООН кода/сортировочной для простой POJO Moxy просто кричит о каждом классе (даже из пакета без jaxb.properties или из других Maven модулей, на которые ссылаются в зависимостях) таким образом:Поставщик JAXB Eclipselink MOXy игнорирует @XmlAccessorType (XmlAccessType.NONE)

Exception Description: The class other.maven.module.package.class requires a zero argument constructor or a specified factory method. Note that non-static inner classes do not have zero argument constructors and are not supported. 

Я не сталкивался с такой проблемой с Metro (эталонная реализация, но у меня есть другие недостатки для моего использования), и, к сожалению, я действительно не могу модифицировать каждый класс таким образом.

ответ

2

Я смог проверить эту проблему, для устранения этой проблемы была введена следующая ошибка.

Резюме Проблема:

Для следующей модели объекта:

import javax.xml.bind.annotation.XmlAccessType; 
import javax.xml.bind.annotation.XmlAccessorType; 

@XmlAccessorType(XmlAccessType.NONE) 
public class Foo { 

    private Bar bar; 

    public Bar getBar() { 
     return bar; 
    } 

    public void setBar(Bar bar) { 
     this.bar = bar; 
    } 

} 

и:

public class Bar { 

    public Bar(String name) { 
    } 

} 

Реализация EclipseLink MOXy JAXB обрабатывает класс Bar, хотя этого не должно быть, поскольку оно не отображается.

+0

Спасибо за ответ, я надеялся, что это не ошибка, просто моя ошибка, поскольку мне это нужно :) –

+0

У нас скоро будет исправление. Какую версию EclipseLink вы используете? –

+0

2.1.2; Я думаю, что 2.3.0-SNAPSHOT может сделать магию в ближайшее время? :) –

Смежные вопросы