JAXRS尝试调用Interface而不是Implementation

时间:2014-01-09 10:36:33

标签: rest jax-rs

我有一个JAXRS应用程序。我有一个Interface类(SomeResource)(我把大部分注释放在其中)和这个接口的实现(SomeService)。

我在重写的JaxRSApplication方法中注册了SomeService.class .getClasses();

我的所有其他服务/资源都以相同的方式实现,但每当我尝试调用这个服务(SomeService)时,我都会遇到以下异常:

“错误500:javax.servlet.ServletException:java.lang.IllegalAccessException:类org.apache.wink.server.internal.handlers.InvokeMethodHandler无法使用修饰符”public abstract“访问类package.api.SomeResource的成员“”

正如您所看到的,由于某种原因,这个服务尝试使用实际实现来调用资源(接口)而不是Service类。

任何人都知道如何解决这个问题? (由于安全性而隐藏真实的类名。)

1 个答案:

答案 0 :(得分:0)

请务必使用其完全限定的类名声明服务的实现类(SomeService.class),而不是应用程序的其余服务配置中的接口。

您必须这样做取决于实施框架。

看看这里:

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