当前位置: 首页 > 面试题库 >

在JavaEE应用程序中将Jackson用作JAXB-JSON-处理器

仉高昂
2023-03-14
问题内容

我已经看过很多关于此的文章和SO问题-但我只是没有使它起作用。我的目标是在JavaEE应用程序中将Jackson用作JSON处理器。到目前为止我有什么?

pom.xml

  • 要么这个

    <dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>2.17</version>
    


问题答案:

我的猜测是您使用的是Glassfish,它使用MOXy作为其默认JSON提供程序。您可以使用禁用它<init-param>

<init-param>
    <param-name>jersey.config.server.disableMoxyJson</param-name>
    <param-value>true</param-value>
</init-param>

jersey-media-json- jackson具有自动发现功能,它应该自动注册。对于Glassfish,我不确定自动发现功能,以及它在内部使用的可能较低版本的Jersey,是否会导致其无法注册。但是无论哪种方式,您配置web.xml的方式都是启用类路径扫描,因此无论如何都应选择Jackson提供程序。

一些FYI

  • jersey-media-json-jackson实际使用jackson-jaxrs-json-provider。它只是将其包装在中JacksonFeature,并可以自动发现它。
  • 如果仍然无法使用,您可以尝试创建一个功能来处理注册和禁用。例如
    @Provider
    

    public class JsonFeature implements Feature {
    @Override
    public boolean configure(FeatureContext context) {
    context.property(“jersey.config.server.disableMoxyJson”, true);
    // this is in jersey-media-json-jackson
    context.register(JacksonFeature.class);


        // or from jackson-jaxrs-json-provider
        context.register(JacksonJsonProvider.class);
        // for JAXB annotation support
        context.register(JacksonJaxbJsonProvider.class);
    
        return true;
    }
    

    }



 类似资料:
  • 我想在spring boot应用程序中使用像Genson这样的JSON处理器。 当您使用或时,由于这两个库的Spring引导自动配置,您非常舒适。 在这个链接中,有一个很好的指南,可以将替换为。 为了解决我的问题,我创建了和bean但是我应该怎么做才能将这行添加到我的配置中呢? 我需要做除上述之外的任何事情来用库替换吗?

  • 我正在尝试使用restTemplate(Spring)和Jackson 2.3.0构建一个JSON Web服务消费者 问题在于pojo的绑定,如下所示: Jackson输出以下错误: org.springframework.http.converter.HttpMessageNotReadableException:无法读取JSON:无法识别的字段"montant_TTC"(类com.bouygt

  • 不推荐使用,是否有其他解决此问题的方法?

  • 我不确定我遇到的问题是概念问题还是技术问题,因为配置错误。 目标是在应用程序容器中托管的Java EE应用程序(特别是WildFly)和独立运行的Java SE应用程序之间发送双向消息,都使用标准JMS协议和主题。我认为这应该是可能的,只要他们都使用相同的经纪人和相同的主题。 因此,我有一个外部 Artemis 实例作为消息代理运行,并在 Java EE 应用程序的单独 Bean 中成功设置了生产

  • 我正在使用以下源代码目录结构的JavaEE Web应用程序: 我感兴趣的文件夹是:它包含、用于设置servlet的xml文件、SpringBean连接上下文以及JSP标记和视图。我试图理解是什么限制/定义了这种结构。例如,JSP文件是否总是必须在中,或者它们可能在其他地方?在WEB-INF中是否还有其他内容?维基百科的WAR文件条目提到了Java类的,JAR文件的——我不确定除了其他源文件位置之外

  • 我有一个带post请求的控制器。我试图用一个简单的NotNull注释验证POJO。我正在使用ControllerAdvice来处理异常。 所以我尝试使用它,但当我启动应用程序时,我得到了以下信息: 因此,我想为BindException创建自己的处理程序,但当我为BindException类创建ExceptionHandler时,spring应用程序不会启动。如果我注释掉handleBindExc