我在项目中一直使用com.sun.xml.bind.marshaller.NamespacePrefixMapper
,在JDK 6u17中我对此没有问题。现在我刚刚更新为6u18,我看到它已被替换为com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper
。但是,如果导入此类并尝试编译我的类,则会收到错误消息:
软件包com.sun.xml.internal.bind.marshaller不存在
导入com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper;
我可以通过NetBeans代码完成功能访问此程序包,而NetBeans不会突出显示错误代码。
任何帮助,将不胜感激!
最佳答案
我不认为com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper
类可以替代com.sun.xml.bind.marshaller.NamespacePrefixMapper
,前者已经存在了很长时间,而且根本就不适合您使用(因此internal
包装)。
这里的问题是JavaSE 6没有JAXB RI(它具有JAXB实现,但没有JAXB RI),因此,如果您希望依赖RI的特定功能,则应将JAXB RI bundle 在您的应用程序中(这样可以保护您的权益) JAXB中Java SE中的更改)。