java - Dropwizard 和 Jersey SSE(服务器端事件)

标签 java jersey dropwizard server-sent-events

有人用过这个Jersey SSE feature已经在 Dropwizard 应用程序中?我用 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.
...

有人知道如何解决这个问题或者有什么想法吗?

最佳答案

这真是一个奇怪的问题。不知道为什么现在有效。也许如果其他人也有同样的问题,我已经这样做了:

environment.jersey().register(new EventOutputMesssageBodyWriter());

MsgBodyWriter 不进行写入(writeTo 方法为空),但它可以工作。真的很奇怪...

关于java - Dropwizard 和 Jersey SSE(服务器端事件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33647103/

相关文章:

jquery - dropwizard 和 jquery 上的 CORS 问题

java - 如何将 CategoryFilter 传递给 JUnitcore?

java - Jersey 重用子资源参数验证

java - Dropwizard Spring 数据库

java - 如何从 Dropwizard 资源中的 config.yml 文件获取字符串?

Java (Jersey 2 + Grizzly 2) JAX-RS 端点的自定义资源注释?

java - Hazelcast - 客户端模式 - 集群故障后如何恢复?

Java无限计数信号量?

java - 为什么 NetBeans 自动生成等于如此冗长?

jersey - 在 UI 中加载之前编辑 swagger.json