Как использовать аннотации JAXB на стороне клиента для GWT? - PullRequest
16 голосов
/ 08 июля 2010

Я хотел использовать аннотацию JaxB в своем классе следующим образом:

@XmlRootElement
public class ItemExtension implements Serializable {

Но GWT жалуется, когда я помещаю его на стороне клиента.

 [ERROR] Line 4: The import javax.xml.bind cannot be resolved
         [ERROR] Line 14: XmlRootElement cannot be resolved to a type

Есть ли обходной путьили я что-то не так делаю?

Ответы [ 5 ]

12 голосов
/ 22 июля 2010

У меня есть проект, который использует классы сущностей с аннотациями JPA и JAXB в коде GWT на стороне клиента. См. Раздел «Переопределение реализации одного пакета другим» в документации GWT .

Допустим, ваш модуль находится в пакете com.example.app. Вам нужно будет воссоздать [1] все классы аннотаций JAXB в новом пакете, в частности com.example.app.jre.java.xml.bind.annotation; в XML-файле вашего модуля вы добавляете <super-source path="jre" /> и все готово.

Обратите внимание, что вам не нужно распространять файлы классов в этом пакете, они нужны исключительно для компилятора GWT.

[1]: их можно скопировать и настроить все ссылки на пакеты.

1 голос
/ 22 июля 2012

Я использовал эту библиотеку для анализа jaxb из GWT-клиента

http://code.google.com/p/gwtjaxb/

Это не полный генератор JAXB, но он покрывает все, что мне нужно.

0 голосов
/ 18 июня 2014

Мне удалось решить проблемы с компилятором GWT, исключив сгенерированную JAXB ObjectFactory из источника в модуле GWT XML:

<source path="model">
    <exclude name="**/ObjectFactory.*" />
</source>
0 голосов
/ 08 июля 2010

Вы можете найти жизнеспособное решение здесь: GWT с JPA

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...