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