jaxws и EclipseLink отказываются использовать перечисления из lib - PullRequest
1 голос
/ 23 мая 2011

У меня есть многомодульный проект Maven с ejb с веб-сервисом, библиотекой и пакетным приложением.Пакетное приложение и модуль ejb совместно используют некоторые перечисления, которые затем находятся в модуле lib.При попытке вернуть одно из этих перечислений из lib в методе webservice он утверждает, что в файле ejb jar нет допустимых ejbs.Кроме того, при использовании другого из этих перечислений в качестве атрибутов в сущности JPA с использованием @Enumerated(EnumType.STRING) я получаю сообщение об ошибке, говорящее:

"... не является допустимым типом для перечисляемого отображения. Атрибут должен быть определен какперечисление Java. "

Мне просто интересно, почему использование этих перечислений таким образом является проблемой?Есть ли какие-то обходные пути, кроме того, чтобы объявить их дважды?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2013

У меня была та же проблема с проектом, над которым я работал.У меня есть общий пакет, который содержит общие интерфейсы (и перечисления), которые пакет персистентности не распознал.В результате я получил вышеупомянутое исключение (даже несмотря на то, что пакет сохраняемости имел зависимости от общего пакета через импортированные пакеты.

Я решил эту проблему, включив общий пакет в путь сборки Java пакета постоянства.:

проект -> свойства проекта -> путь сборки Java / Projects; // добавить сюда пакет, содержащий перечисления

0 голосов
/ 25 марта 2012

Я столкнулся с той же проблемой, и это было потому, что я тестировал с Arquillian и по какой-то причине я забыл добавить пакет, содержащий фактический enum в shrinkwrap.

может быть, что-то мешает провайдеру персистентности (eclipselink в моем случае) видеть ваш enum-класс.Я бы поспорил, что это происходит в вашем случае, потому что у вас есть несколько модулей.

...