当前位置: 首页 > 知识库问答 >
问题:

扰乱JAX-RS SSE:在javax.ws.rs.SSE.SSEeventSink类中找不到合适的构造函数

常甫
2023-03-14
@Path("/subscribe")
@GET
@Produces(MediaType.SERVER_SENT_EVENTS)
public void subscribe(@Context SseEventSink eSink) {
    sinkList.add(eSink);
}

谢谢

下面抛出的错误/警告日志汇总。

警告:检测到以下警告:警告:[javax.ws.rs.sse.sseEventSink]的HK2服务具体化失败,出现异常:MultiException堆栈%1(共%2个java.lang.NoSuchMethodException:在javax.ws.rs.sse.sseEventSink类中找不到合适的构造函数。在org.glassfish.jersey.inject.hk2.jerseyclassanalyzer.getConstructor(jerseyclassanalyzer.java:192)在org.jvnet.hk2.internal.utilities.getConstructor(utilities.java:180)在org.jvnet.hk2.internal.clazzcreator.initialize(clazzcreator.java:129)

在org.apache.tomcat.util.Threads.TaskThread$WrappingGrunnable.Run(TaskThread.java:61)在java.lang.Thread.Run(Thread.java:748)MultiException堆栈2(共2个java.lang.IllegalArgumentException:在对SystemDescriptor(实现=javax.ws.rs.sse.sseEventSink Contracts={javax.ws.rs.sse.sseEventSink}

...

警告:[javax.ws.rs.sse.sseEventSink]的HK2服务具体化失败,出现异常:MultiException堆栈%1(共%2个java.lang.NoSuchMethodException:在javax.ws.rs.sse.sseEventSink类中找不到合适的构造函数。在org.glassfish.jersey.inject.hk2.jerseyclassanalyzer.getConstructor(jerseyclassanalyzer.java:192)在org.jvnet.hk2.internal.utilities.getConstructor(utilities.java:180)在org.jvnet.hk2.internal.clazzcreator.initialize(clazzcreator.java:129)

...

在java.util.concurrent.ThreadPoolExecutor$worker.run(ThreadPoolExecutor.java:624)在org.apache.tomcat.util.Threads.TaskThread$wrappingrunnable.run(TaskThread.java:61)在java.lang.Thread.run(Thread.java:748)多异常堆栈2个java.lang.IllegalArgumentException:在对SystemDescriptor(implement=javax.ws.rs.sse.sseEventSink contracts=

...

严重:路径为[/API]的上下文中servlet[Jersey Web Application]的servlet.service()引发异常[java.lang.IllegalArgumentException:检测到SseEventSink参数,但未找到。]根本原因java.lang.IllegalArgumentException:检测到SseEventSink参数,但未找到。在org.glassfish.jersey.server.model.internal.javaResourceMethodDispatcherProvider$SSEEventsInkInvoker.doDispatch(javaResourceMethodDispatcherProvider.java:159)在org.glassfish.jersey.server.model.internal.abstractJavaResourceMethodDispatcher.dispatch(abstractJavaResourceMethodDispatcher.java:103)

...在java.util.concurrent.ThreadPoolExecutor.Runworker(ThreadPoolExecutor.java:1149)在java.util.concurrent.ThreadPoolExecutor$worker.run(ThreadPoolExecutor.java:624)在org.apache.tomcat.util.Threads.TaskThread$wrappingrunnable.run(TaskThread.java:61)在java.lang.Thread.run(Thread.java:748)

共有1个答案

傅正豪
2023-03-14

我也遇到了同样的问题,并通过将jersey-media-sse依赖项添加到pom.xml(使用Maven)中来解决了这个问题

<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.media/jersey-media-sse -->
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-sse</artifactId>
    <version>2.27</version>
</dependency>

如果您不使用Maven,这里是到回购的链接

我不确定,但据我理解,问题是sseeventsink是一个接口,Jersey不能为它实例化任何类。上面的依赖项可能为SSEeventSink接口提供了默认实现和默认映射器

 类似资料:
  • 问题内容: 我正在实现他们文档中提供的firebase示例。我遇到此错误: com.fasterxml.jackson.databind.JsonMappingException:没有为类型[简单类型,类com.XYZ。$ BlogPost]找到合适的构造函数:无法从JSON对象实例化(需要添加/启用类型信息吗?) 这是我的代码: 我在同一件事上经历了很多问题,说要包含反序列化JSON所需的空构造

  • 问题内容: 我是Java的新手,正在尝试为Minecraft制作一个mod,但我不知道如何解决此错误: 这是我的代码: 这是怎么回事,我正在尝试使字符串“ Username”重定向到另一个类。 问题答案: Java编译器告诉您不能构造对象,因为您对构造函数的调用与任何已知的构造函数都不匹配。 具体来说,编译器发现了两个构造函数: 但您致电给: 都不匹配。

  • 我的程序是用Java8写的,当我使用LocalDateTime的类型时,它会给我以下错误: 没有为类型[simple type,class java.time.LocalDateTime]找到合适的构造函数:无法从JSON对象实例化(缺少默认构造函数或创建者,或者可能需要添加/启用类型信息?) 在[来源:[B@5976fe6f; 行:1,列:80](通过引用链:com.boot.framwork.

  • 我在运行代码时得到了这个错误,我在跟踪treehouse Build a blog reader android应用程序,现在我得到了这个错误 错误:(120,52)错误:找不到适合ArrayAdapter(MainListActivity.GetBlogPostStask,int,String[])的构造函数ArrayAdapter.ArrayAdapter(Context,int,int)不适

  • 问题内容: 当我尝试执行此HQL以返回对象时,出现此错误: 错误[org.hibernate.hql.PARSER](http- localhost-127.0.0.1-8080-2)无法在类[br.com.cdv.model.entity.Ponto]上找到适当的构造函数[原因= org.hibernate。 PropertyNotFoundException:类中没有适当的构造函数:br.co