Java 有没有办法让Guice保留注释?

Java 有没有办法让Guice保留注释?,java,annotations,jax-rs,guice,Java,Annotations,Jax Rs,Guice,我正在尝试迭代由接口条注释的所有类,使用Guice的Injector.createInstance初始化它们,并向Dropwizard服务器注册它们 然而,Guice的Injector.createInstance方法似乎放弃了JAX-RS以及每个类上的自定义注释。出于某种原因,Guice保留的唯一内容是@MediaType注释。@Path注释丢失,这会阻止Jersey正确处理HTTP请求 有没有办法强迫Guice在自己生成的实现中保留这些类上的所有现有注释?注意,注入器未配置为专门处理Foo的

我正在尝试迭代由接口
注释的所有类,使用Guice的
Injector.createInstance
初始化它们,并向Dropwizard服务器注册它们

然而,Guice的
Injector.createInstance
方法似乎放弃了JAX-RS以及每个类上的自定义注释。出于某种原因,Guice保留的唯一内容是
@MediaType
注释。
@Path
注释丢失,这会阻止Jersey正确处理HTTP请求

有没有办法强迫Guice在自己生成的实现中保留这些类上的所有现有注释?注意,注入器未配置为专门处理
Foo
的实例,但
Foo
的构造函数标记为注入器

Guice已经有超过10年的历史了,它还没有解决,而且可能永远也不会解决

唯一的解决方法是在注释上使用注释

但是您提到您使用的是现有注释,而不是自定义注释,所以让我们检查一下它们:is
@Inheritated
(很好!),is is(也很好!),但是is is not(booh!),所以确实
@Path
不存在于您的GUI代理上


我能给你的唯一建议就是去掉你的Guice AOP(TypeListener)。如果你能做到这一点,那么你很可能没有任何Guice代理,你的方法将位于顶部对象上,因此Jersey可以看到。

我接受这个答案,因为它回答了我提出的问题。然而,令人惊讶的是,这个问题根本不是由注入库引起的。在使用手动构造的对象时,我仍然面临这个问题。也许更令人惊讶的是,Guice的代理仍然能够在其他项目以及我自己的项目中使用Jersey(所需路径上的错误消息不是404,这意味着Jersey能够从代理对象“读取”正确的路径)。