2014-01-09 3 views
0

У меня есть приложение JAXRS. У меня есть класс интерфейса (SomeResource) (где я помещаю большинство моих аннотаций) и реализацию этого интерфейса (SomeService).JAXRS пытается вызвать интерфейс вместо реализации

Я зарегистрировал SomeService.class в переопределенном методе JaxRSApplication .getClasses();

Все мои другие услуги/ресурсы осуществляются таким же образом, но всякий раз, когда я пытаюсь вызвать эту одну услугу (SomeService), я получаю следующее исключение:

«Ошибка 500: javax.servlet.ServletException: java.lang.IllegalAccessException: класс org.apache.wink.server.internal.handlers.InvokeMethodHandler не может получить доступ к члену класса package.api.SomeResource с модификаторами "public abstract" "

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

У кого-нибудь есть идея, как решить это? (Реальные имена классов скрыты из-за безопасности).

ответ

0

Обязательно объявите класс реализации службы (SomeService.class) полным полным именем класса, а не интерфейсом в вашей конфигурации обслуживания вашего приложения.

Способ, которым вы должны это сделать, зависит от реализации инфраструктуры.

Посмотрите здесь:

http://cxf.apache.org/docs/jaxrs-services-configuration.html

Смежные вопросы