He estado usando com.sun.xml.bind.marshaller.NamespacePrefixMapper
en mi proyecto, y no tuve ningún problema con él en JDK 6u17. Ahora acabo de actualizar a 6u18, y vi que se ha reemplazado a com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper
. Sin embargo, si puedo importar esta clase y intento compilar mis clases, me sale el error:¿Qué pasó con JAXB NamespacePrefixMapper en JDK6u18
package com.sun.xml.internal.bind.marshaller does not exist import com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper;
puedo acceder a este paquete a través de la función de finalización de código de NetBeans, y NetBeans no resalta el código de errores.
¡Cualquier ayuda sería apreciada!
que suena lógico, pero entonces - ¿por qué están estos paquetes allí? – Bozho
@Bozho Como escribí, Java 6 incluye una implementación JAXB que ** no es ** JAXB RI, por lo que si desea confiar en una función específica de JAXB RI, debe agruparla. Así que sí, la publicación del blog es incorrecta ya que el autor estaba usando explícitamente una función específica de RI (razón por la cual se enfrentó a problemas con los cambios de JavaSE, como el OP). –
@Bozho Es de hecho. Pero ese embalaje "interno" debe hacer que corras y busques otra solución. Usar 'internal' es, en el mejor de los casos, una solución temporal, simplemente no sabes cuándo se romperá. –