委托给不同的Jersey资源类

时间:2013-06-13 15:44:43

标签: java rest jersey

我有一个资源存在于内部jar依赖项中(因此,我无法更改它的代码):

@Path("doStuff")
public class ExternalResource {
    @GET
    public Response getSomething() {
    }

我需要创建自己的资源,使用前缀路径进行一些检查,如果它们通过,我想将处理委托给这个外部资源。

@Path("api/check")
public class MyResource {
    @GET
    public Response check() {
    }

最终,有人打电话给GET / api / check / doStuff 我想要进行检查并将处理委托给外部资源。

我怎么能在泽西岛做类似的事情?

2 个答案:

答案 0 :(得分:0)

ExternalResource instance = [use here your ioc if used or new ExternalResource]

@Path("api/check")
public class MyResource {
  @GET
  public Response check() {
    return instance.getSomething();
  }
}

答案 1 :(得分:0)

我为此目的使用CDI @Inject,但是如果你的ExternalResource不是@ManagedBean那么这将不起作用......

您可以尝试使用Jersey的@InjectParam?

import com.sun.jersey.api.core.InjectParam;

@Path("api/check")
public class MyResource {
    @InjectParam
    private ExternalResource extResource;
    @GET
    public Response check() {
         return extResource.getSomething()
    }
}