Resteasy无法在子资源

时间:2016-12-20 18:23:07

标签: jax-rs resteasy

我像这样设置了一个根资源Foo:

@ApplicationPath ("/foo")
@Path ("/")
public class Foo extends Application {

  private static Map<String, Bar> map = new HashMap<> ();

  @GET
  public Collection<String> keys () {
    return map.keySet ();
  }

  @Path ("{key}")
  @PUT
  public void put (@PathParam ("key") String k, Bar v) {
    map.put (k, v);
  }

  @Path ("{key}")
  public Bar get (@PathParam ("key") String k) {
    return map.get (k);
  }
}

我的子资源吧就像这样:

public class Bar {

  private @JsonProperty String bar;

  @GET
  public String bar () {
    return bar;
  }

  @Path ("bar")
  @PUT
  public void bar (String bar) {
    this.bar = bar;
  }
}

GET上调用/foo可以正常工作并生成[]。之后,使用正文PUT(杰克逊进行序列化)调用/foo/a{"bar":"hello"}就可以了,并按预期生成204(无内容)。之后,GET上的/foo调用按预期生成["a"]。然而,在GET上调用/foo/a会导致405和服务器上的异常&#34; RESTEASY003650:找不到GET&#34;的资源方法。如果重要的话,我可以提供完整的堆栈跟踪。我使用Wildfly作为我的应用程序服务器,我的例子几乎是http://docs.jboss.org/resteasy/docs/1.0.1.GA/userguide/html/JAX-RS_Resource_Locators_and_Sub_Resources.html之上的数字的副本,我做错了什么?

0 个答案:

没有答案