java - 下面的java代码正确的pom依赖是什么?

标签 java dependencies pom.xml server-sent-events tomcat8

错误

org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [org.javaee7.jaxrs.serversentevent.MyApplication] in context with path [/broadcast-0.0.1-SNAPSHOT] threw exception [Servlet execution threw an exception] with root cause java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder; at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:669) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:301) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:652) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

POM.xml

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-sse</artifactId>
            <version>2.0-m13-2</version>
        </dependency>
        <dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-servlet</artifactId>
    <version>1.19</version>
</dependency>
  </dependencies>

我的tomcat版本是8.0。

Java 代码:

import javax.ws.rs.ApplicationPath;
import org.glassfish.jersey.media.sse.SseFeature;
import org.glassfish.jersey.server.ResourceConfig;

@ApplicationPath("webresources")
public class MyDemo extends ResourceConfig {
    public MyDemo() {
        super(MyResource.class, SseFeature.class);
    }
}

.

import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
import javax.ws.rs.Consumes;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.glassfish.jersey.media.sse.EventOutput;
import org.glassfish.jersey.media.sse.OutboundEvent;
import org.glassfish.jersey.media.sse.SseBroadcaster;
import org.glassfish.jersey.media.sse.SseFeature;


@Path("test")
public class MyResource {

    private static final SseBroadcaster BROADCASTER = new SseBroadcaster();

    @GET
    @Path("hello")
    @Produces(SseFeature.SERVER_SENT_EVENTS)
    public EventOutput itemEvents() {
        final EventOutput eventOutput = new EventOutput();
        BROADCASTER.add(eventOutput);
        return eventOutput;
    }

    @POST
    public void addItem(e) {

        BROADCASTER.broadcast(new OutboundEvent.Builder().data(String.class, "hello").build());

    }
}

最佳答案

您的错误日志清楚地说明了您的问题所在。你的依赖性不是问题。您尝试调用抽象方法 uri。检查这个documentation 。您必须找到一个实现此 uri 方法的类。

关于java - 下面的java代码正确的pom依赖是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31560754/

相关文章:

java - GoogleCloudMessaging 未授权错误 401(Android 作为服务器)

laravel - 尝试安装 gloudemans/shoppingcart,安装失败,将 ./composer.json 恢复为其原始内容?

java - 检测未连接图中的循环

java - 导出仅包含未提供的依赖项的 jar Eclipse Maven 项目

java - Surefire 按顺序运行某些测试,并行运行其他测试

Maven liquibase 插件

java - 使用 java 在特定时间找不到文件时发送警报邮件

java - 如何在Spring Security中为两个不同的URL指定两个不同的登录表单?

Java:查找字符串长度时包含空格

c++ - 包含链如何在 C++ 中运行?