2

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

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

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

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

最终,当有人调用 GET /api/check/doStuff 时,我希望进行检查并将处理委托给外部资源。

我怎么能在泽西岛做这样的事情?

4

2 回答 2

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()
    }
}
于 2013-06-13T23:57:43.307 回答
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();
  }
}
于 2013-06-13T15:52:23.667 回答