Плюсы / минусы Java JAXB и документация

Прошло много времени с тех пор, как я в гневе использовал Java, поэтому, пожалуйста, простите меня, если это глупо.

Я только что начал работу над Java-проектом, в котором мы используем JAXB для десериализации входящей строки XML (от Jetty Server). В этой ситуации проект использует только JAXB.

Какие есть альтернативы JAXB?
Какие плюсы и минусы JAXB перед этими альтернативами?

Я немного погуглил и нашел много справочного материала, но есть ли окончательный источник, который является местом перехода для вопросов JAXB, или люди просто видят, что люди делают, и интерпретируют оттуда.

Спасибо.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
12
0
9 882
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

Я использую JAXB для нескольких проектов. Я думаю, что самое лучшее в нем - это интеграция с новыми технологиями, такими как JAX-WS и JAX-RS (JSR 311, спецификация Restful).

Если вы обрабатываете входящий XML как строку с помощью Jetty, я бы серьезно подумал о рассмотрении JAX-RS. Он обрабатывает все связки JAXB за вас, а вы просто работаете с объектом.

Я был очень доволен JAXB через CXF как для стиля REST, так и для веб-служб SOAP.

В качестве альтернативы JAXB вы можете попробовать XFire (http://xfire.codehaus.org/) или Axis2 (http://ws.apache.org/axis2/). Кажется, это две популярные альтернативы, и я считаю, что обе они теперь являются жалобой на JAX-WS.

Ответ принят как подходящий

Я нашел JAX-B довольно полезным, и он мне нравится больше, чем многие другие альтернативы, особенно если я начинаю с нуля и генерирую схему из объектов Java, а не из объектов Java из схемы.

По моему опыту, по какой-то причине мне трудно получить хорошую документацию только с помощью поиска в Google. Лучшая электронная документация представлена ​​в загрузке JAX-B, где вы также найдете множество примеров. «SOA с использованием веб-служб Java» тоже имеет неплохой обзор.

Что касается альтернатив, то есть:

и, возможно, еще несколько.

На ум приходит XML Bean (http://xmlbeans.apache.org/)

Одним из плюсов JAXB является то, что теперь он поставляется вместе с JDK6. Вывод сгенерирован действительно плотно и эффективно. В настоящее время мы конвертируем всю нашу реализацию XML Bean для использования JAXB 2. Большой минус, который мы видели, - это отсутствие операций, связанных с XSD.

Еще один большой плюс, который я обнаружил при использовании JAXB, заключается в том, что теперь это де-факто для всех привязок JAX-WS. Всегда приятно не добавлять в свой проект тонны сторонних расширений; Большинство других технологий потоковой передачи XML попросят вас добавить Apache Commons.

Nik 22.05.2009 23:35

В последний раз, когда я использовал XML Beans, произошла утечка примерно 100% экземпляров классов. Пытаясь выяснить, почему я взглянул на один из самых диких исходных кодов, которые я видел, мы перестали его использовать. Это было 2-3 года назад, так что сейчас может быть лучше.

Peter Becker 30.10.2009 07:27

JAXB теперь также является фактическим связыванием для JAX-RS для создания служб REST на Java.

bdoughan 16.07.2010 00:30

XStream действительно хорош, если у вас есть объектная модель для XML, который вы пытаетесь проанализировать.

Однако XStream не может правильно работать с пространствами имен. Считаю это большим недостатком.

duffymo 26.12.2008 05:44

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

http://simple.sourceforge.net/

Другими альтернативами могут быть Castor, JibX, XMLBeans или JDOM.

На самом деле я использовал Castor. Это лучше, чем JAXB в случае привязки xml. Он предоставляет функциональные возможности для сопоставления ваших существующих Java-бинов.

JAXB также может отображать ваши существующие Java-бины.

bdoughan 16.07.2010 00:31

Смотрите здесь: http://jcp.org/en/jsr/all для JSR-222. В этом запросе на спецификацию Java указывается стандарт (платный).

Один большой недостаток JAXB (при использовании аннотаций в переданных объектах) заключается в том, что Android не поддерживает аннотации JAXB (классы неизвестны), и вы не можете добавить их вручную. Также см. Использование JAXB с Google Android

Другие вопросы по теме