【问题标题】:Restful - Moxy doesn't make unmarshalling properly in weblogic 14cRestful - Moxy 无法在 weblogic 14c 中正确解组
【发布时间】:2021-06-17 09:46:08
【问题描述】:

我有一个使用 JAXB 注释的嵌套对象作为输入并生成 JAXB 注释的嵌套对象的 REST Web 服务。

你可以把我的嵌套对象想象成这样;

{
    "propertyOne": "bla bla",
    "propertyTwo": "5",
    objectB: {
        "propertyA": "xyz",
        "propertyB": "true"
    }

}

还有我对 Web 服务的资源定义,例如;

    @POST
    @Path("/abc")
    @Produces({ MediaType.APPLICATION_JSON })
    @Consumes({ MediaType.APPLICATION_JSON })
    public ObjectC search(ObjectA objectA) {
        // some logic
    }

这是一个在 weblogic 12c 上使用 java1.8 的工作结构。但是在迁移到 java11 和 weblogic 14c 后,当我向这个 Web 服务发送请求时,我在搜索资源中收到了一个空的 objectA,例如;

{
    "propertyOne": "",
    "propertyTwo": "",
    objectB: null
}

存在解组问题,这是为什么呢?任何想法...

NOT:过去使用的库我使用 MOXY 作为 JSON 提供程序

        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-moxy</artifactId>
            <scope>provided</scope>
        </dependency>

【问题讨论】:

  • WebLogic 14 使用哪个版本的 Jersey? Moxy 甚至可能不再是默认设置。如果您想确保使用 Moxy,请不要将其作为提供的内容并显式注册 Moxy 提供程序(或功能)
  • @PaulSamsotha,谢谢您的回复。我删除了 moxy 的作用域并注册了 MoxyJsonFeature 但现在我收到了一个错误;引起:java.lang.ClassCastException:类 org.glassfish.jersey.logging.LoggingFeatureAutoDiscoverable 无法转换为类 org.glassfish.jersey.internal.spi.AutoDiscoverable(org.glassfish.jersey.logging.LoggingFeatureAutoDiscoverable 位于未命名的模块中loader weblogic.utils.classloaders.ChangeAwareClassLoader @1ac42b0d; org.glassfish.jersey.internal.spi.AutoDiscoverable 在 loader com.oracle.classloader.weblogic.LaunchClassLoader @13e39c73 的未命名模块中)
  • 如果 WebLogic 已经有 MOXy 库,您可能可以将范围放回去。注册该功能应该足以确保使用 MOXy。我认为错误可能是由于您在应用程序中使用的 Jersey 版本不同,而 Jersey WebLogic 的版本不同
  • 嗨@PaulSamsotha,你是对的,注册就够了,它奏效了。我认为 weblogic 仍然保留了 moxy 库。

标签: java rest jersey unmarshalling moxy


【解决方案1】:

Paul 的建议解决了这个问题,只需将 moxy 放在提供的范围内并注册 MoxyJsonFeature,就可以了

【讨论】:

    猜你喜欢
    • 2012-06-13
    • 2022-01-01
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 2020-09-19
    • 2018-03-19
    • 2018-03-30
    • 1970-01-01
    相关资源
    最近更新 更多