我正在尝试使用 Castor 1.3.2 使用此程序自动生成映射文件。
但这是我得到的异常(exception) - java.lang.IllegalArgumentException:没有枚举 const 类 org.exolab.castor.mapping.xml.types.BindXmlNodeType.element
这是一个相当基本的测试,我做错了什么?
公共(public)类 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!这个bug可能会在以后的版本中得到修复,但我不抱希望。
关于java - 无法使用 Castor 映射工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12415265/