嵌入式码头&泽西岛,与泽西岛2.7一起使用,2.9的例外情况

时间:2015-01-18 13:05:41

标签: java rest jersey jetty jax-rs

我正在尝试以下示例:

如果我使用Jersey 2.7(和Jetty 9.2.5.v20141112)运行它,它可以工作。如果我将Jersey更新为2.9(或2.14),则在启动时失败:

 WARN 2015-01-18 17:02:13,076 e.jetty.util.component.AbstractLifeCycle:212  - FAILED org.eclipse.jetty.server.Server@1741055a: java.lang.NoSuchMethodError: org.glassfish.jersey.internal.util.PropertiesHelper.getValue(Ljava/util/Map;Ljavax/ws/rs/RuntimeType;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
java.lang.NoSuchMethodError: org.glassfish.jersey.internal.util.PropertiesHelper.getValue(Ljava/util/Map;Ljavax/ws/rs/RuntimeType;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    at org.glassfish.jersey.moxy.json.MoxyJsonFeature.configure(MoxyJsonFeature.java:67)
    at org.glassfish.jersey.model.internal.CommonConfig.configureFeatures(CommonConfig.java:709)
    at org.glassfish.jersey.model.internal.CommonConfig.configureMetaProviders(CommonConfig.java:639)
    at org.glassfish.jersey.server.ResourceConfig.configureMetaProviders(ResourceConfig.java:809)
    at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:388)
    at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:163)
    at org.glassfish.jersey.server.ApplicationHandler$3.run(ApplicationHandler.java:323)
    at org.glassfish.jersey.internal.Errors$2.call(Errors.java:289)
    at org.glassfish.jersey.internal.Errors$2.call(Errors.java:286)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
...
...

有没有人知道如何更改列出的示例的代码(或者我的maven依赖项?),以便这适用于2.9 / 2.14?

马腾

1 个答案:

答案 0 :(得分:3)

好的,添加我的完整POM的请求指出了我的问题:我使用了一个属性来指定Jersey组件的版本,除了之外的jersey-media-moxy依赖项,我有硬编码到2.7 :(我的不好,对不起所有......