【问题标题】:JAXB provider Eclipselink MOXy ignores @XmlAccessorType(XmlAccessType.NONE)JAXB 提供程序 Eclipselink MOXy 忽略 @XmlAccessorType(XmlAccessType.NONE)
【发布时间】:2011-01-18 17:00:48
【问题描述】:

我在package-info.java 中将@XmlAccessorType(XmlAccessType.NONE) 用于my.package,这意味着JAXB 应该只关心带注释的元素。但是,当我使用 un/marshalling 代码为简单的 POJO MOXy 运行 JUnit 测试时,MOXy 只会以这种方式尖叫每个类(即使来自没有 jaxb.properties 的包或依赖项中引用的其他 maven 模块):

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 的此类问题(参考实现,但我使用它还有其他缺陷),不幸的是我真的不能以这种方式修改每个类。

【问题讨论】:

    标签: jaxb eclipselink moxy


    【解决方案1】:

    我已经能够验证此问题,已输入以下错误以跟踪此问题。

    问题摘要:

    对于以下对象模型:

    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 类,尽管它不应该处理,因为它没有被映射。

    【讨论】:

    • 感谢您的回复,我希望这不是错误,只是我需要的错误:)
    • 我们很快就会修复。您使用的是哪个版本的 EclipseLink?
    • 该修复已签入,可从明天(1 月 20 日)开始的 EclipseLink 2.3.0 夜间下载获得:eclipse.org/eclipselink/downloads/nightly.php
    • 嗨,Blaise,该快照对我来说还有其他问题,但现在可以正常工作了。但是,我发现了一些其他问题,我已经在 Bugzilla 中报告了这些问题。
    • 您好 Zdenek,我们会调查这些。
    猜你喜欢
    • 1970-01-01
    • 2013-06-25
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 2016-02-01
    相关资源
    最近更新 更多