我在Dropwizard中遇到资源链接问题。使用JAX-RS 2.0,我们有了神奇的javax.ws.rs.core.Link
类,它的构建器可以为您完成几乎所有的工作。不幸的是, Dropwizard 0.7.1 不依赖于新的2.0 API,而是依赖于无法处理链接的旧javax.ws.rs:jsr311-api
API。或者可以吗?这是我想用Dropwizard解决的问题。我可能有两种方法可以做到,我不知道它们是否有效:
选项1 :我将JAX-RS 2.0依赖项添加到我的项目中。瞧!我有链接。但问题是,它与泽西岛的旧实现不兼容 - 我从UriBuilder得到AbstractMethodException
,显然从版本1变为2.所以答案是提供新的实现。 我可以这样做吗?如果是的话,我怎么能这样做?新的实现是否适用于dropwizard?
选项2 :我可以添加一些其他资源链接到dropwizard。还有其他一些链接标准/库吗?我不能使用jersey-declarative-linking
因为它将表示与资源混合(链接发生在表示中),我希望我的表示不要知道关于资源层的事情。 Dropwizard,Jersey和JAX-RS 1还有另一个链接标准吗?
答案 0 :(得分:1)
我终于找到了问题的答案。
选项2是死路一条。没有其他类似jax-rs-2的链接库,无论是dropwizard还是jersey本身。
选项一也很难做到,但幸运的是昨天dropwizard发布了他们的框架版本 0.8.0-rc1 ,这取决于jersey-2 2.0,这是JAX-RS 2.0的实现。因此,对于想要在dropwizard中使用HATEOAS的所有人,版本0.8.0适合您。