如何在 Jersey 2 中使用 Jira-rest-java-client

How to use Jira-rest-java-client with Jersey 2

我正在尝试将 Jira Rest Client 用于现有的 Jersey 项目。但它会导致依赖冲突。

pom.xml:

<dependency>
  <groupId>org.glassfish.jersey.containers</groupId>
  <artifactId>jersey-container-servlet</artifactId>
  <version>2.24.1</version>
</dependency>
<dependency>
  <groupId>com.atlassian.jira</groupId>
  <artifactId>jira-rest-java-client-core</artifactId>
  <version>2.0.0-m30</version>
</dependency>

上述依赖导致异常:

root cause: java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;

如果我排除 com.sun.jersey:jersey-client,前一个错误就会消失。

<dependency>
  <groupId>com.atlassian.jira</groupId>
  <artifactId>jira-rest-java-client</artifactId>
  <version>1.2-m01</version>
  <exclusions>
    <exclusion>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-client</artifactId>
    </exclusion>
  </exclusions>
</dependency>

但随后又引发了另一个异常。 org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: com/atlassian/fugue/Effect

是否有任何解决方法可以让 Jira 客户端与 Jersey 2 一起工作?

有两个依赖项要从 atlassian jira rest 客户端中排除:

      <dependency>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-rest-java-client-core</artifactId>
        <version>5.1.2-2bd0a62e</version>
        <exclusions>
          <exclusion>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-json</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

您遇到的其他问题可以通过添加此依赖项来解决:

      <dependency>
        <groupId>io.atlassian.fugue</groupId>
        <artifactId>fugue</artifactId>
        <version>4.7.2</version>
        <scope>provided</scope>
      </dependency>