Ich habe com.sun.xml.bind.marshaller.NamespacePrefixMapper
in meinem Projekt verwendet, und ich hatte kein Problem damit in JDK 6u17. Jetzt habe ich nur auf 6u18 aktualisiert, und ich sah, dass es com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper
ersetzt wurde. Allerdings, wenn ich diese Klasse importieren und versuche, meine Klassen zu kompilieren, erhalte ich die Fehlermeldung:Was ist passiert mit JAXB NamespacePrefixMapper in JDK6u18
package com.sun.xml.internal.bind.marshaller does not exist import com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper;
ich dieses Paket durch die Vervollständigungsfunktion NetBeans Code zugreifen kann, und NetBeans den Code nicht für Fehler markieren.
Jede Hilfe wäre willkommen!
das klingt logisch, aber dann - warum sind diese Pakete da? – Bozho
@Bozho Wie ich geschrieben habe, enthält Java 6 eine JAXB-Implementierung, die ** nicht ** JAXB RI ist. Wenn Sie sich also auf eine JAXB RI-spezifische Funktion verlassen wollen, sollten Sie sie bündeln. Ja, der Blogpost ist falsch, da der Autor explizit ein RI-spezifisches Feature verwendet hat (weshalb er Probleme mit JavaSE-Änderungen hatte, wie das OP). –
@Bozho Es ist in der Tat. Aber diese 'interne' Verpackung sollte Sie zum Laufen bringen und nach einer anderen Lösung suchen. Die Verwendung von "internal" ist bestenfalls eine vorübergehende Lösung, Sie wissen einfach nicht, wann es kaputt gehen wird. –