gpt4 book ai didi

java - Jetty 9 上的无描述符 Jersey

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:29 26 4
gpt4 key购买 nike

我正在考虑使用嵌入式 Jetty 和 Jersey 在 Java 中编写独立的 REST 应用程序。

Jersey 文档表明在 Servlet 3.0 容器中,Jersey 应该能够自动注册 Web 应用程序而不需要 Web 描述 rune 件或代码:https://jersey.java.net/documentation/latest/deployment.html#deployment.servlet.3

但是,我怀疑我没有以正确的方式(或根本没有)正确地调用 Jersey:

        ServletHandler handler = new ServletHandler();

Server server = new Server(8080);
server.setHandler(handler);

server.start();
server.join();

我已经尝试了一些其他的事情,但大多数其他示例似乎都在尝试解决其他问题。

我想要实现的完整示例代码在这里: https://github.com/dowlingw/jax-rs-plzhalp

(无关:我考虑过使用 DropWizard,但不想要随附的所有内容)

干杯:)

最佳答案

这是一个简单的例子

服务器:

package com.mayapp.app;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.glassfish.jersey.server.ServerProperties;
import org.glassfish.jersey.servlet.ServletContainer;

/**
* Hello world!
*/
public class App {
public static void main(String[] args) {
Server server = new Server(8112);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
ServletHolder h = new ServletHolder(new ServletContainer());
h.setInitParameter(ServerProperties.PROVIDER_PACKAGES, "com.myapp.resources");
h.setInitOrder(1);
context.addServlet(h, "/*");
server.setDumpAfterStart(true);
try {
server.start();
}catch(Exception ex) {
ex.printStackTrace();
}
}

}

和资源:

package com.myapp.resources;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("hello")
public class HelloWorldResource {
@GET
@Produces("text/plain")
public String getHello() {
return "hello world";
}

}

关于java - Jetty 9 上的无描述符 Jersey ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22137920/

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