【问题标题】:Attaching Jersey REST service programmatically to Jetty以编程方式将 Jersey REST 服务附加到 Jetty
【发布时间】:2015-02-22 15:32:13
【问题描述】:

是否可以以编程方式将 Jersey RESTful 服务附加到 Jetty 跑步者?我不清楚如何从 Web 服务类中创建一个 Servlet 对象。

换句话说,是否可以在没有 web.xml 文件的情况下创建 Jersey Web 服务并将其附加到我们自己实例化的服务器上?

网络服务

@Path("/hello")
public class HelloWebapp {
    @GET()
    public String hello() {
        return "Hi !";
    }
}

码头跑者

public class JettyEmbeddedRunner {
    public void startServer() {
        try {
            Server server = new Server();

            ServletContextHandler context = new ServletContextHandler();
            context.setContextPath("/test");

            new ServletContextHandler(server, "/app", true, false) {{
                addServlet(new ServletHolder(HelloWorldServlet.class), "/world");
            }};

            server.addConnector(new ServerConnector(server) {{
                 setIdleTimeout(1000);
                 setAcceptQueueSize(10);
                 setPort(8080);
                 setHost("localhost");
            }});
            server.start();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }
}

Gradle 依赖项

dependencies {
    compile 'org.eclipse.jetty:jetty-server:9.0.0.RC2'
    compile 'org.eclipse.jetty:jetty-servlet:9.0.0.RC2'
    compile 'org.glassfish.jersey.containers:jersey-container-servlet:2.14'  
}

【问题讨论】:

    标签: java rest gradle jersey jetty


    【解决方案1】:

    就像你在 web.xml 中使用的一样

    <servlet>
        <servlet-name>Jersey App</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        ...
    </sevlet>
    

    您也可以将ServletContainer 用于独立设备。

    ResourceConfig config = new ResourceConfig();
    config.packages("...");
    ServletHolder jerseyServlet = new ServletHolder(new ServletContainer(config));
    

    你可以看到一个完整的例子here

    【讨论】:

    • 谢谢!对于未来阅读此问题的人。 servlet 需要附加:context.addServlet(jerseyServlet, "/*");
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多