1

我正在尝试使用该程序使用 Castor 1.3.2 自动生成映射文件。

但这是我得到的异常 - java.lang.IllegalArgumentException: No enum const class org.exolab.castor.mapping.xml.types.BindXmlNodeType.element

这是一个相当基本的测试,我做错了什么?

公共类 CastorMapping {

    public CastorMapping()
    {
        try
        {
            MappingTool tool = new MappingTool();
            tool.setInternalContext(new org.castor.xml.BackwardCompatibilityContext());
            tool.addClass(TestRequest.class);
            OutputStream file = new FileOutputStream("gen_mapping.xml" );
            Writer writer = new OutputStreamWriter(file);
            tool.write(writer);
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }
    }

    public static void main(String[] args)
    {
        new CastorMapping();
    }

}

谢谢!

4

1 回答 1

2

我自己试过这个,我相信你做的一切都是正确的。

我浏览了 castor 源代码,据我所知,当他们将 BindXmlNodeType 重新设计为枚举类而不是常规类时,他们在 1.3 和 1.3.2 之间的某个地方破坏了 MappingTool。有一些代码他们正在寻找 BindXmlNodeType.element,但现在 BindXmlNodeType 是一个枚举,他们需要查找 ELEMENT(大写字母)。但我离题了...

如果您有能力恢复到 Castor 1.3,那么一切都应该正常。

顺便说一句 - 我试图升级到 1.3.3-rc1 但 Intellij 无法解决 maven 依赖项。例如 1.3.3-rc1 中的 castor-xml 现在依赖于 Spring!这个错误可能会在以后的版本中修复,但我不抱希望。

于 2012-09-13T23:25:05.517 回答