6

我从他对这个问题 [ 1 ] 的回答中遵循了 Michal 的指南,关于实现自定义注释以将任意事物注入资源方法。这个(要点)[ 2 ] 包含一个从jersey-quickstart-grizzly2原型改编的简约测试平台。我将在下面的文本中提及它。

我遇到了几个问题:

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

    // 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

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

4

0 回答 0