当前位置: 首页 > 知识库问答 >
问题:

创建一个ResourceConfig,其行为方式与默认的Jetty的Jersey注册方式相同

颜霖
2023-03-14

我有一个endpoint:

@POST
@Path("/test")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String canaryTest(String JSON) {
    return JSON;
}

当我使用泽西岛在码头注册时

ServletHolder holder = new ServletHolder(new ServletContainer());

一切似乎都很好。但是如果我试图明确指定默认配置,它就会停止工作(从endpoint返回一个媒体类型错误)。即使只是将ResourceConfig的默认实例传递给ServletContainer,它也会停止工作。

ResourceConfig config = new ResourceConfig();
//config.property(x,defaultX)
//config.property(y,defaultY)
ServletHolder holder = new ServletHolder(new ServletContainer(config));

我想手动和显式地模拟默认的配置行为,所以我在这里问的是我应该如何配置ResourceConfig以使行为继续工作(例如,设置什么属性)

附言:我使用的是Jetty 9.2.6. v20141205和泽西2.14。Maven中的依赖项:

  • 日食.码头.码头-服务器组织.eclipse.码头.码头-servlet
  • 日食.码头
  • 组织.玻璃鱼.泽西.containers.泽西-容器-servlet-core
  • com.sun.jersey.jersey-json
  • 组织.玻璃鱼.泽西.媒体.泽西-媒体-json-杰克逊

共有1个答案

谢旭
2023-03-14

我不知道你是怎么做到的

ServletHolder holder = new ServletHolder(new ServletContainer());

我无法生成一个简单地实例化 Servlet 容器 ()的工作示例。虽然我即将让它与以下代码一起使用

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的情况下工作的

我应该提到的另一件事是< code > jersey-container-servlet-core 应该换成< code > jersey-container-servlet 。前者用于2.5容器支持,但后者推荐用于3.x容器。然而,就我的例子来说,这没有任何效果

卷曲

<代码>C:\

<代码>C:\

 类似资料:
  • 问题内容: 我有一个端点: 当我使用泽西岛在Jetty中注册时 一切似乎都正常。但是,如果我尝试明确指定默认配置,它将停止工作(从端点返回媒体类型错误)。即使只是将ResourceConfig的默认实例传递给ServletContainer,它也会停止工作。 我想手动和显式地模拟默认配置行为,所以我在这里要问的是我应该如何配置ResourceConfig以便行为保持正常(即要设置的属性) PS:我

  • 问题内容: 我有一个端点: 当我使用泽西岛在Jetty中注册时 一切似乎都正常。但是,如果我尝试明确指定默认配置,它将停止工作(从端点返回媒体类型错误)。即使只是将ResourceConfig的默认实例传递给ServletContainer,它也会停止工作。 我想手动和显式地模拟默认配置行为,所以我在这里要问的是我应该如何配置ResourceConfig以便行为能够继续起作用(即,设置什么属性)

  • 主要内容:1.@Bean的方式,2.@Contoller/@Repository/@Component/@Service,3.@Import,4.ImportSelector,5.ImportBeanDefinitionRegistrar,6.FactoryBeanBean为Spring的最重要没有之一。 1.@Bean的方式 pojo就是简单是一个javabean 这里是打印bean的对象 这里的bookController是因为在控制器上有一个Controller注解 当然在MainConf

  • 本文向大家介绍Yii2中组件的注册与创建方法,包括了Yii2中组件的注册与创建方法的使用技巧和注意事项,需要的朋友参考一下  今天本来打算研究一下yii2.0的AR模型的实现原理,然而,计划赶不上变化,突然就想先研究一下yii2.0的数据库组件创建的过程。通过对yii源码的学习,了解了yii组件注册与创建的过程,并发现原来yii组件注册之后并不是马上就去创建的,而是待到实际需要使用某个组件的时候再

  • 本文向大家介绍pandas DataFrame创建方法的方式,包括了pandas DataFrame创建方法的方式的使用技巧和注意事项,需要的朋友参考一下 在pandas里,DataFrame是最经常用的数据结构,这里总结生成和添加数据的方法: ①、把其他格式的数据整理到DataFrame中; ②在已有的DataFrame中插入N列或者N行。 1. 字典类型读取到DataFrame(dict to

  • 本文向大家介绍elementui的默认样式修改方法,包括了elementui的默认样式修改方法的使用技巧和注意事项,需要的朋友参考一下 今天用element ui ,做了个消息提示,发现提示的位置总是在上面,如图: 可是我想让提示的位置到下面来,该怎么办? 最后还是看了官方的api 原来有个自定义样式属性 customClass 设置下就好了 js代码 css代码 效果图 以上这篇elementu