Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Android + JAXB, Возможно ли использовать JAXB в android 
:(
    Опции темы
Gladkiy
Дата 28.3.2011, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 10.3.2011

Репутация: нет
Всего: нет



День добрый.

Необходимо парсить java-объекты которые передаются через xml. 
Хочется использовать для этих целей JAXB framework, т.к. имеются предварительно аннотированные (с помощью JAXB) java-классы.

Возможно ли это в принципе?

Код

InputStream input = entity.getContent();
JAXBContext jc = JAXBContext.newInstance(new Class[] {Response.LoginResponse.class});
Unmarshaller un = jc.createUnmarshaller();
LoginResponse response = (LoginResponse)un.unmarshal(input);


т.к. на строке 4 вылетает warning: "unable to resolve static method 282 JAXBContext..."
и далее VM вылетает

Спасибо.
PM MAIL   Вверх
ivanovpv
Дата 29.3.2011, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 10
Всего: 28



Цитата(Gladkiy @  28.3.2011,  16:12 Найти цитируемый пост)
Хочется использовать для этих целей JAXB framework, т.к. имеются предварительно аннотированные (с помощью JAXB) java-классы.

Возможно ли это в принципе?


1) J2ME не поддерживает JAXB. Давно не обновлял у себя в голове эту инфу, но пару лет назад он точно не поддерживал - с тех пор вряд ли что-то изменилось (особенно с учетом вымирания J2ME)
2) Несколько удивляет выбор в таком легковесном аппарате как J2ME такого тяжелого инструментария для разбора XML - как JAXB, проще уж приделать SAX. Весь смысл (да и кайф) программирования под J2ME в том, чтобы обходиться малыми силами.

P.S. Эх где времена когда 4 кб RAM считались верхом роскоши!



--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
Gladkiy
Дата 29.3.2011, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 10.3.2011

Репутация: нет
Всего: нет



Еще раз уточняю: Все это требуется в Android.



Это сообщение отредактировал(а) Gladkiy - 29.3.2011, 10:29
PM MAIL   Вверх
ivanovpv
Дата 30.3.2011, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 10
Всего: 28



Цитата(Gladkiy @  29.3.2011,  11:27 Найти цитируемый пост)
Еще раз уточняю: Все это требуется в Android.

Сорри пропустил мимо ушей

Вообще то JAXB не входит в пакет Android и насколько мне известно отсутствует имплементация JAXB для Dalvik VM. Скорее всего проблема вызвана тем, что вы пытаетесь напрямую использовать библиотеки JAXB для стандартной Java машины или же была проблема с конвертацией из JVM байткодов в Dalvik VM байткоды пригодные для Android'а.

Есть конечно путь героя: взять исходники JAXB перекомпилировать их под Android (или вы это уже сделали?)

Это сообщение отредактировал(а) ivanovpv - 30.3.2011, 08:54


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
Gladkiy
Дата 30.3.2011, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 10.3.2011

Репутация: нет
Всего: нет



Цитата
насколько мне известно отсутствует имплементация JAXB для Dalvik VM
 Таки отсутствует.  smile 
Насколько я сейчас понимаю, остается два пути: либо использовать SimpleXML smile , либо брать на таран JAXB (компилировать исходники под Android)smile.
Буду посмотреть. 
Результаты постараюсь сообщить.

Спасибо за помощь. smile 

Это сообщение отредактировал(а) Gladkiy - 30.3.2011, 12:14
PM MAIL   Вверх
ivanovpv
Дата 31.3.2011, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 10
Всего: 28



Цитата(Gladkiy @  30.3.2011,  13:14 Найти цитируемый пост)
Насколько я сейчас понимаю, остается два пути: либо использовать SimpleXML  , либо брать на таран JAXB (компилировать исходники под Android).

Если собираетесь использовать SimpleXML - фактически это будет означать что будете менять аннотации классов, в таком случае проще уж вообще отказаться от идеи передачи классов через XML

Если собираетесь таранить JAXB в лобовую - предостерегаю от необдуманного шага. Проблема будет в том, что Dalvik VM не реализует примерно 20-30% функционала JVM - то есть вы наткнетесь на сообщение типа: метод ABCD в классе Foo отсутствует - при этом выяснится что метод ABCD в классе Foo замечательно живет под JDK - и что? Вы полезете в исходники JDK выдернете оттуда декларацию метода вставите его в исходники Android'а либо будете писать на коленках наследование/инкапсулирование и проч. хитрости с тем, чтобы JAXB подставить нужный вам класс/метод? В общем это затянется на годик если не больше... Потом выйдет обновление JAXB - и все ваши хитрости придется выкинуть или же вступить в сообщество разработчиков JAXB долго нудно выбивать себе статус комиттера (не факт что вы станете таковым и сообщество признает ваши заслуги). Вопрос зачем?


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
Gladkiy
Дата 4.4.2011, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 10.3.2011

Репутация: нет
Всего: нет



Цитата

Если собираетесь использовать SimpleXML - фактически это будет означать что будете менять аннотации классов, в таком случае проще уж вообще отказаться от идеи передачи классов через XML

К сожалению, мне необходимо парсить XML-документ, создавая из него java-object с необходимыми значениями полей. 
Основная проблема в том, что эти  объекты создаются не с помощью java.

А насчет JAXB - это я погорячился. smile

Есть проблемы и с SimpleXml. Он мало популярен и на него мало ссылок (по крайней мере, пока). Так что в случае проблем рассчитывать ненакого.  smile
Такая вот проблема.

Это сообщение отредактировал(а) Gladkiy - 4.4.2011, 12:28
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0756 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.