WS Libs: com.sun.xml против javax.xml - PullRequest
3 голосов
/ 16 июня 2010

В этих группах пакетов есть идентичные классы java WebServices API и IMPL, отличаются только имена пакетов.

Какие из них я должен использовать в своем коде?Я бы предпочел NON-com.sun. * Согласно соглашениям Java, но все же мои зависимости (например, Spring) используют реализации из com.sun. * ИЛИ Я не могу найти пакет реализации в javax.xml

У кого-нибудь есть опыт по этому поводу?

1 Ответ

2 голосов
/ 16 июня 2010

Используйте пакеты javax.xml - пакеты com.sun не являются частью общедоступного API Java и могут меняться между версиями Java или даже не существуют, если вы используете чью-то иную, чем реализация Java, Sun.

См .: Почему разработчики не должны писать программы, которые называют пакетами 'sun'

Я не знаю, что именно вы пытаетесь сделать, но обычно вам не нужноразобраться с пакетами реализации напрямую.Обычно существуют фабричные классы и методы для получения экземпляра, например, анализатора XML, и вашей программе не нужно знать, какая реализация используется за кулисами.Например, чтобы получить SAX-парсер, вы делаете:

import javax.xml.parsers.*;

SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
...