无法创建AsynchronousHttpClientFactory

时间:2015-10-14 20:45:32

标签: maven jira jira-rest-api jira-rest-java-api

我正在使用jitbit创建jira rest客户端以进行一些交叉检查。 Jitbit部分的工作方式与jira客户端不同。我得到了这个例外。 奇怪的是,如果我用 slf4j-simple 替换pom中的 logback ,它就可以了。但我想使用 logback 而不是 slf4j-simple

configuartion = config;
this.uri = URI.create(configuartion.getJiraBaseUrl());
restClientFactory = new AsynchronousJiraRestClientFactory();
myHandler = new BasicHttpAuthenticationHandler(configuartion.getJiraUser(), configuartion.getJiraPassword());
issuclient = restClientFactory.create(uri,myHandler).getIssueClient();

但是在执行时我得到了这个例外

    22:14:24.737 [main] DEBUG c.a.j.r.c.i.a.AsynchronousHttpClientFactory$MavenUtils - Could not find version for maven artifact com.atlassian.jira:jira-rest-java-com.atlassian.jira.rest.client
    22:14:24.742 [main] DEBUG c.a.j.r.c.i.a.AsynchronousHttpClientFactory$MavenUtils - Got the following exception
    java.lang.NullPointerException: null
    at java.util.Properties$LineReader.readLine(Properties.java:434) ~[na:1.8.0_45]
    at java.util.Properties.load0(Properties.java:353) ~[na:1.8.0_45]
    at java.util.Properties.load(Properties.java:341) ~[na:1.8.0_45]
    at com.atlassian.jira.rest.client.internal.async.AsynchronousHttpClientFactory$MavenUtils.getVersion(AsynchronousHttpClientFactory.java:158) ~[jira-rest-java-client-core-2.0.0-m25.jar:na]
    at com.atlassian.jira.rest.client.internal.async.AsynchronousHttpClientFactory$RestClientApplicationProperties.getVersion(AsynchronousHttpClientFactory.java:121) [jira-rest-java-client-core-2.0.0-m25.jar:na]
    at com.atlassian.httpclient.apache.httpcomponents.DefaultHttpClient.getUserAgent(DefaultHttpClient.java:168) [atlassian-httpclient-apache-httpcomponents-0.13.2.jar:na]
    at com.atlassian.httpclient.apache.httpcomponents.DefaultHttpClient.<init>(DefaultHttpClient.java:139) [atlassian-httpclient-apache-httpcomponents-0.13.2.jar:na]
    at com.atlassian.jira.rest.client.internal.async.AsynchronousHttpClientFactory.createClient(AsynchronousHttpClientFactory.java:53) [jira-rest-java-client-core-2.0.0-m25.jar:na]
    at com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory.create(AsynchronousJiraRestClientFactory.java:35) [jira-rest-java-client-core-2.0.0-m25.jar:na]
    at eu.pricefx.monitoring.tickets.crossChecker.dao.JiraTicketDao.<init>(JiraTicketDao.java:33) [classes/:na]

我的POM在这里:

<properties>
        <!-- Logging -->
        <slf4j.version>1.7.5</slf4j.version>
        <logback.version>1.0.13</logback.version>

        <!-- Spring -->
        <spring-framework.version>4.2.1.RELEASE</spring-framework.version>

        <jira-api.version>6.1.1</jira-api.version>
        <jira-rest-java-client-core.version>3.0.0</jira-rest-java-client-core.version>


        <!-- Test -->
        <junit.version>4.11</junit.version>

    </properties>

    <dependencies>
        <!-- Logging -->

        <!-- <dependency> -->
        <!-- <groupId>org.slf4j</groupId> -->
        <!-- <artifactId>slf4j-simple</artifactId> -->
        <!-- <version>${slf4j.version}</version> -->
        <!-- </dependency> -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>${logback.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
        </dependency>

        <!-- Spring and Transactions -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring-framework.version}</version>
        </dependency>

        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.10</version>
        </dependency>
        <!-- Json Mapping -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.5.3</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.3.1</version>
        </dependency>

        <!-- Jira rest client api library -->

        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-rest-java-client-api</artifactId>
            <version>2.0.0-m25</version>
        </dependency>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-rest-java-client-core</artifactId>
            <version>2.0.0-m25</version>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-json</artifactId>
            <version>1.5</version>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
            <version>1.9</version>
        </dependency>

        <!-- static list of items generation -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.7</version>
        </dependency>
        <!-- configuration reader -->
        <dependency>
            <groupId>commons-configuration</groupId>
            <artifactId>commons-configuration</artifactId>
            <version>1.8</version>
        </dependency>
    </dependencies>
    <dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.2.1-atlassian-2</version>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpasyncclient</artifactId>
      <version>4.0-beta3-atlassian-1</version>
    </dependency>
  </dependencies>
    </dependencyManagement>


    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>eu.pricefx.monitoring.tickets.crossChecker.CrossChecker</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>atlassian-public</id>
            <url>https://m2proxy.atlassian.com/repository/public</url>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
                <checksumPolicy>warn</checksumPolicy>
            </snapshots>
            <releases>
                <enabled>true</enabled>
                <checksumPolicy>warn</checksumPolicy>
            </releases>
        </repository>
    </repositories>

我已经尝试了here中写的内容,但它没有帮助

1 个答案:

答案 0 :(得分:0)

首先,你必须像这样创建你的客户端:

JiraRestClient restClient = restClientFactory.createWithBasicHttpAuthentication(uri, configuartion.getJiraUser(), configuartion.getJiraPassword());

其次你应该使用最新的版本(3.0),所以你应该用以下内容覆盖你的pom:

    <dependency>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-rest-java-client-api</artifactId>
        <version>3.0.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-rest-java-client-core</artifactId>
        <version>3.0.0</version>
        <scope>provided</scope>
    </dependency>

如果这不能解决您的问题,您应该检查您与Atlassian公共存储库的连接。您还可以尝试将存储库URL更改为以下(我认为这是主要问题,因为他们更改了存储库URL ):

<repositories>
    <repository>
        <id>atlassian-public</id>
        <url>https://maven.atlassian.com/public/</url>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
        </snapshots>
        <releases>
            <enabled>true</enabled>
            <checksumPolicy>warn</checksumPolicy>
        </releases>
    </repository>
</repositories>