泽西岛2. *。自定义InjectionResolver和“HTTP GET方法......不应该使用任何实体”

时间:2013-08-28 12:58:12

标签: java dependency-injection jersey jax-ws jax-rs

我已经按照Michal的指南回答了这个问题[1]关于实现自定义注释的注释,以便将任意内容注入资源方法。这个(要点)[2]包含一个从jersey-quickstart-grizzly2原型改编而来的简约测试平台。我将在下文中提及它。

我遇到了一些问题:

  1. 我的解析器是参数化类型(或者至少它会让事情变得更清晰,在我看来)因此我不能像Michal所说的那样在我的活页夹中bind

    // Instead of the suggested:
    // bind(MyInjectionResolver.class).to(new TypeLiteral<InjectionResolver<MyAnnotation>>() {}).in(Singleton.class);
    // I do:
    bind(myInjectionResolverObject).to(new TypeLiteral<InjectionResolver<MyAnnotation>>() {});
    
  2. 当我在资源方法中使用MyAnnotation时,我在服务器启动时收到以下警告(但服务器仍然启动):

    WARNING: The following warnings have been detected: WARNING: A HTTP GET method, public java.lang.String com.example.MyResource.get02(java.lang.Integer,java.lang.String), should not consume any entity.
    
  3. 当我请求资源(curl -X GET http://localhost:8080/myresource/01/aa)时,我得到的是02: value = aa; providedValue = null而不是预期的02: value = aa; providedValue = 123

  4. 永远不会执行MyResolver.resolve方法(但会执行MyBinder.configure)。

  5. (这与测试平台应用程序无关,但我在稍微复杂的代码中遇到了问题:资源方法永远不会执行,服务器会以500 No content to map to Object due to end of input响应)

  6. 关于我可能做错什么的任何想法?

0 个答案:

没有答案