Обновить
43
Константин Грибов@grossws

Разработчик

16
Подписчики
Отправить сообщение
Спасибо за уточнение, исправил.

В SE вошло JAXP (включая StAX), вот и ошибся =)
Ответил случайно в основную ветку
Проверил, что это необязательно в Resteasy. Написал так, потому что у аннотаций типа @GET, @Path нет мета-аннотации @Inherited, т. е. по логике они не наследуются. Как к этому отнесутся другие реализации — не знаю. Resteasy ищет и в интерфейсе тоже.

Бин создается при инжекции его в другой бин или при обращении к нему через сервлет Resteasy. Наличие JAX-RS аннотаций не является необходимым. Например, могут присутствовать аннотации JAX-WS.

Как правило в реальных задачах этой проблемы не возникает: аннотируется класс-реализация, интерфейс для нее не экстрагируется, но создается независимый.

В методах этого класса и методах интерфейса для прокси могут быть разные сигнатуры: метод реализации возвращает javax.ws.rs.core.Response, а интерфейса InputStream или String
Только если они успели допилить. API деплоя изменилось от 7.1.RC (такое же, как в 7.0 ветке) к 7.1.Final, это поломало совместимость в идее (11.0 не работает без скачанной руками сборки plugin'а — см. IDEA-81489, в 11.1 EAP уже всё норм).

Всегда остается workaround: использовать jboss-maven-plugin. Так в idea спасались, когда не было поддержки AS 7 вообще.
В Java это проблема частично решается Joda Time.
В jdk7 так и не вошло улучшение JSR-310 от Стефена Коулборна (автора joda time).
Остается надеяться, что оно войдет в java se 8.
Ещё дополнение. Современные AppServer'а обычно сами строятся на OSGi платформе. В JBoss AS 7 оно тоже доступно, но работает независимо от JBoss Modules, используемого для деплоя и разрешения зависимостей WAR/EJB-JAR/EAR/etc
Да, JBoss Modules напоминает OSGi уровень, отвечающий за загрузку, но ориентированы на разное применение.
Modules — легковесная прослойка для загрузки классов, не занимающаяся, например, разделением видимости публичного API и имплементации.

То есть, если Modules указать в зависимостях определенный jar, то все его классы будут доступны для classloader'а. В OSGi окружении будут доступны только классы, указанные в Export-Package в манифесте.

Естественно, OSGi R4 затрагивает и другие уровни (lifecycle, services), что ортогонально применимости JBoss Modules.
12 ...
215

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность