我不知道你是怎么工作的
ServletHolder holder = new ServletHolder(new ServletContainer());
我无法简单地实例化一个实例来生成一个可行的示例
ServletContainer()。尽管我正准备将其与以下代码一起使用
public class TestJerseyServer { public static void main(String[] args) throws Exception { ResourceConfig config = new ResourceConfig(); config.packages("jetty.practice.resources"); ServletHolder jerseyServlet = new ServletHolder(new ServletContainer(config)); Server server = new Server(8080); ServletContextHandler context = new ServletContextHandler(server, "/"); context.addServlet(jerseyServlet, "/*"); server.start(); server.join(); }}使用所有依赖项(不包括
com.sun.jersey:jersey-json,因为不需要)。没有其他配置。资源类
@Path("test")public class TestResource { @GET @Produces(MediaType.APPLICATION_JSON) public Response getTest() { Hello hello = new Hello(); hello.hello = "world"; return Response.ok(hello).build(); } @POST @Consumes(MediaType.APPLICATION_JSON) public Response postHello(Hello hello) { return Response.ok(hello.hello).build(); } public static class Hello { public String hello; }}在
jetty.practice.resources包装中。
我很好奇,看看您如何在没有
ResourceConfig
我应该提到的另一件事是
jersey-container-servlet-core应该将其切换为
jersey-container-servlet。前者用于2.5容器支持,但推荐用于3.x容器。以我的例子来说,它没有任何作用
卷曲
C:>curl http://localhost:8080/test -X POST -d "{"hello":"world"}" -H"Content-Type:application/json"worldC:>curl http://localhost:8080/test{"hello":"world"}



