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

但是这是我得到的例外-
java.lang.IllegalArgumentException:没有枚举const类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();
    }


}

谢谢!

最佳答案

我自己尝试了一下,相信您做的一切正确。

我浏览了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!可能在更高版本中修复了该错误,但我并不希望。

09-19 00:41