gpt4 book ai didi

java - 以编程方式将 Jersey REST 服务附加到 Jetty

转载 作者:行者123 更新时间:2023-11-30 07:03:01 25 4
gpt4 key购买 nike

是否可以通过编程方式将 Jersey RESTful 服务附加到 Jetty runner?我不清楚如何从 Web 服务类创建 Servlet 对象。

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

网络服务

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

Jetty Runner

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'
}

最佳答案

就像您在 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

关于java - 以编程方式将 Jersey REST 服务附加到 Jetty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28659634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com