我一直在我的项目中使用 com.sun.xml.bind.marshaller.NamespacePrefixMapper
,我在 JDK 6u17 中没有任何问题。现在我刚更新到6u18,我看到它已经被替换为com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper
。但是,如果我导入此类并尝试编译我的类,则会收到错误消息:
package com.sun.xml.internal.bind.marshaller does not exist import 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(并且将保护您免受 Java SE 中的 JAXB 更改)。
关于java - JDK6u18 中 JAXB 的 NamespacePrefixMapper 发生了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2326107/