我正在尝试升级到泽西岛2.26。我添加了所需的新hk2依赖项:
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
</dependency>
我使用的是jersey-bom 2.26。
我使用Genson进行JSON绑定,如下所示:
Genson genson = new GensonBuilder().withBundle(new JAXBBundle()).setSkipNull(true).create();
rc.register(new GensonJaxRSFeature().use(genson));
以前,一切都运行良好,现在我的一些测试失败了,有点神秘的NPE:
java.lang.NullPointerException
at org.eclipse.yasson.internal.serializer.DeserializerBuilder.isJsonValueEvent(DeserializerBuilder.java:155)
at org.eclipse.yasson.internal.serializer.DeserializerBuilder.build(DeserializerBuilder.java:110)
at org.eclipse.yasson.internal.Unmarshaller.deserializeItem(Unmarshaller.java:56)
at org.eclipse.yasson.internal.Unmarshaller.deserialize(Unmarshaller.java:50)
at org.eclipse.yasson.internal.JsonBinding.deserialize(JsonBinding.java:45)
at org.eclipse.yasson.internal.JsonBinding.fromJson(JsonBinding.java:85)
at org.glassfish.jersey.jsonb.internal.JsonBindingProvider.readFrom(JsonBindingProvider.java:99)
有趣的是,如果我从Eclipse运行它就可以了。
有没有人有调试/排除故障的提示?这是一个相当大的项目(使用rest-client模块等),因此很难在不知道哪些部分有趣的情况下发布相关代码。