2017-09-24 2 views
0

J'essaie de créer un JiraRestClient en utilisant l'authentification de base.Impossible de créer un JiraRestClient

JiraRestClientFactory factory = new AsynchronousJiraRestClientFactory(); 
URI jiraServerUri = getJiraUri(); 
JiraRestClient restClient = factory 
.createWithBasicHttpAuthentication(jiraServerUri, USERNAME, PASSWORD); 

Cependant, je reçois l'exception ci-dessous:

Exception in thread "main" java.lang.NoSuchMethodError: com.atlassian.fugue.Option.fold(Lcom/google/common/base/Supplier;Lcom/google/common/base/Function;)Ljava/lang/Object; 
    at com.atlassian.httpclient.apache.httpcomponents.proxy.ProxyConfigFactory.getProxyHost(ProxyConfigFactory.java:16) 
    at com.atlassian.httpclient.apache.httpcomponents.ApacheAsyncHttpClient.<init>(ApacheAsyncHttpClient.java:211) 
    at com.atlassian.httpclient.apache.httpcomponents.ApacheAsyncHttpClient.<init>(ApacheAsyncHttpClient.java:123) 
    at com.atlassian.httpclient.apache.httpcomponents.DefaultHttpClientFactory.doCreate(DefaultHttpClientFactory.java:68) 
    at com.atlassian.httpclient.apache.httpcomponents.DefaultHttpClientFactory.create(DefaultHttpClientFactory.java:35) 
    at com.atlassian.jira.rest.client.internal.async.AsynchronousHttpClientFactory.createClient(AsynchronousHttpClientFactory.java:63) 
    at com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory.create(AsynchronousJiraRestClientFactory.java:35) 
    at com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory.createWithBasicHttpAuthentication(AsynchronousJiraRestClientFactory.java:42) 
    at com.jira.JiraClient.getJiraRestClient(JiraClient.java:37) 
    at com.jira.JiraClient.getIssue(JiraClient.java:25) 
    at com.jira.JiraClient.main(JiraClient.java:20) 

Il semble que certaines dépendances d'exécution est manquante. Mais je ne sais pas lequel.

Voici l'extrait de mon pom:

<dependencies> 
    <dependency> 
     <groupId>com.atlassian.jira</groupId> 
     <artifactId>jira-rest-java-client-core</artifactId> 
     <version>4.0.0</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.atlassian.fugue</groupId> 
     <artifactId>fugue</artifactId> 
     <version>3.0.0-m007</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-simple</artifactId> 
     <version>1.6.4</version> 
    </dependency> 
</dependencies> 
<repositories> 
    <repository> 
     <id>atlassian-public</id> 
     <url>https://packages.atlassian.com/maven/repository/public</url> 
    </repository> 
</repositories> 

Qu'est-ce que je manque ici?

Répondre

0

La version compatible avec JRJC Fugue 4.0.0is 2.6.1

<dependency> 
    <groupId>com.atlassian.fugue</groupId> 
    <artifactId>fugue</artifactId> 
    <version>2.6.1</version> 
</dependency> 
0

Ce n'est pas à cause d'une bibliothèque manquante. Cela est dû à la différence de version entre fugue et jira-rest-java-client-core dans votre pom.

En regardant brièvement le source, Fugue attend une interface JDK tandis que la bibliothèque de repos fournit une goyave. Essayez la version corrigée OU ne spécifiez pas la fugue du tout. Cela devrait venir en tant que dépendance transitive.

+0

J'ai essayé sans d'abord Fugue, obtenu NoClassDefFoundError. Puis j'ai ajouté la dépendance. Je vais vérifier les versions. Mais je pensais que les interfaces Gava étendaient les interfaces JDK et les transmettre ne devrait pas poser de problème. – Yasin