【问题标题】:Maven dependencies for REST API - Jersey - Glassfish or not?REST API 的 Maven 依赖项 - Jersey - Glassfish 与否?
【发布时间】:2013-09-27 21:25:42
【问题描述】:

我是 REST API 的新手,对 Maven 不太熟悉。我注意到大多数人将 REST 与 Jersey 实现结合使用。我需要编写 POST 请求,并且可能还需要 GET 请求。我很难找到正确的 - 最低要求 - Maven 开始编码的依赖项。

我在网上查看了很多资源。看起来泽西岛带有 Glassfish 服务器。我在本地 PC 上安装了 Tomcat,我将使用它来开发 REST 和测试。我们让 Jboss 在我们的生产服务器上运行,我的代码最终将部署到这些服务器上。在我看来,不同的资源会说不同的东西,或者我有可能没有得到它!

1) 我可以在不依赖 Glassfish 的情况下将 Jersey 与 Tomcat 或 Jboss 一起使用吗?

2) 回到Maven依赖;

我在这里找到了:

http://aike.me/site/blog/20090914/restful_web-services_in_java_using_jax-rs_-_part_1_getting_up_and_running

Maven: Getting Jersey into your project

<repositories>
    <repository>
        <id>maven2-repository.dev.java.net</id>
        <name>Java.net Repository for Maven</name>
        <url>http://download.java.net/maven/2/</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-server</artifactId>
    <version>1.0.3.1</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.1.12</version>
    <scope>compile</scope>
</dependency>

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>jsr311-api</artifactId>
    <version>1.0</version>
</dependency>
<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.1</version>
    <scope>provided</scope>
</dependency>

这些就是我所需要的吗?

在 Jersey 网站上的 B/c 我发现定义了不同的依赖项:

https://jersey.java.net/documentation/latest/modules-and-dependencies.html

我不会在此处复制和粘贴这些依赖项,因为它会使这篇文章变得很长。我没有看到任何这些依赖项 - 在 http://aike.me 中提到的定义在:

https://jersey.java.net

如:

<artifactId>jersey-server</artifactId>

<artifactId>jaxb-impl</artifactId>

<artifactId>jsr311-api</artifactId>

<artifactId>jaxb-api</artifactId>

这是为什么呢?为什么我被提及不同的依赖项?

非常感谢任何帮助。

【问题讨论】:

    标签: java rest maven glassfish jersey


    【解决方案1】:

    在组 ID 中使用带有“org.glassfish.*”的依赖项并不意味着您必须使用 Glassfish 服务器。

    Jersey 已成为 glassfish 的一部分,这也是包名称更改的唯一原因。最新版本是在这个包下发布的,推荐在 Jersey 网站上,所以我会坚持使用最新的包。

    【讨论】:

    • 在我的问题中,我问的是 Glassfish 服务器而不是 Glassfish 罐子;当时发布了问题,我使用的是 Jersey1,但是,org.glassfish.jersey 适用于版本 2 及更高版本,但总的来说,我认为这个答案是有道理的,这意味着:如果使用 Jersey 实现,他们不一定需要使用 Glassfish 服务器,他们可以使用 Tomcat,JBoss,...如果使用 Jersey1 不是必须的,那么最好使用来自 org.glassfish.jersey 的最新 jar 文件和包。
    【解决方案2】:

    我已经为此创建了一个快速入门模板,请随时 fork 或克隆它。 Get it here

    【讨论】:

    • 谢谢希德。我开始使用aike.me/site/blog/20090914/… 中提到的内容,但问题是为什么 jersey.java.net 是 Jersey 项目的所在地,不应该有这样的部分:“不使用 Glassfish 的 Maven 用户,使用这些依赖项.. ." 或类似的东西,并尽量减少混乱。它没有提到应该如何在没有 Glassfish 的情况下使用 Jersey 以及他们应该如何在 Jersey 网站上配置 Maven,这是您希望首先找到它的地方。
    • 同意,我也觉得这很奇怪。此外,com.sun - 就像一次短暂的时间旅行,带我进入 JavaOne 的快乐时光。我期望一个不同的包名。
    猜你喜欢
    • 2020-04-08
    • 2015-03-09
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 2012-10-18
    • 1970-01-01
    相关资源
    最近更新 更多