有没有人在Dropwizard应用程序中使用过这个Jersey SSE feature?我尝试使用DW 0.9.1,但我得到的只是启动时的异常:
[main]: /:?:?- unavailable
org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization.
[[FATAL] No injection source found for a parameter of type public org.glassfish.jersey.media.sse.EventOutput .......
身份验证和授权也像here一样使用SecurityContext完成。我还尝试了一个非常简单的无身份验证/授权应用程序,并且存在同样的问题。也许我必须注册SSE,但我不知道如果这解决了我的问题,因为Jersey文档说自版本2.8.x后有自动注册。
我尝试了什么,但没有帮助:
environment.jersey().register(SseFeature.class);
environment.jersey().getResourceConfig().register(SseFeature.class);
System.out.println("sse feature:" + environment.jersey().getResourceConfig().getConfiguration().isRegistered(SseFeature.class));
输出:
...
sse feature:true
WARN [2015-11-11 10:12:58,845] [main]: org.glassfish.jersey.internal.Errors:?:?- The following warnings have been detected: WARNING: Cannot create new registration for component type class org.glassfish.jersey.media.sse.SseFeature: Existing previous registration found for the type.
...
有谁知道如何解决这个问题或有任何想法?
答案 0 :(得分:0)
这是一个非常奇怪的问题。不知道为什么它现在有效。也许如果其他人有同样的问题,我就这样做了:
environment.jersey().register(new EventOutputMesssageBodyWriter());
MsgBodyWriter没有写入(writeTo方法为空),但它有效。真奇怪......