Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JIRA使用java创建问题_Jira_Jira Rest Api_Jira Rest Java Api - Fatal编程技术网

JIRA使用java创建问题

JIRA使用java创建问题,jira,jira-rest-api,jira-rest-java-api,Jira,Jira Rest Api,Jira Rest Java Api,我想做的是创建一个关于JIRA over Java的新版本。事实上,我正在实习,以前没有使用过API。这是我在研究JIRA文档时发现的代码。不确定参数是否错误 public class ExampleCreateIssuesAsynchronous { private static URI jiraServerUri = URI.create("https://stajtest.atlassian.net/"); public static void main(String[

我想做的是创建一个关于JIRA over Java的新版本。事实上,我正在实习,以前没有使用过API。这是我在研究JIRA文档时发现的代码。不确定参数是否错误

public class ExampleCreateIssuesAsynchronous {

    private static URI jiraServerUri = URI.create("https://stajtest.atlassian.net/");

    public static void main(String[] args) throws IOException {
        final AsynchronousJiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
        final JiraRestClient restClient = factory.createWithBasicHttpAuthentication(jiraServerUri, "internship2016****", "***************");

        try {
            final List<Promise<BasicIssue>> promises = Lists.newArrayList();
            final IssueRestClient issueClient = restClient.getIssueClient();

            System.out.println("Sending issue creation requests...");
            for (int i = 0; i < 100; i++) {
                final String summary = "NewIssue#" + i;
                final IssueInput newIssue = new IssueInputBuilder("TST", 1L, summary).build();
                System.out.println("\tCreating: " + summary);
                promises.add(issueClient.createIssue(newIssue));
            }
            System.out.println("Collecting responses...");
            final Iterable<BasicIssue> createdIssues = transform(promises, new Function<Promise<BasicIssue>, BasicIssue>() {
                @Override
                public BasicIssue apply(Promise<BasicIssue> promise) {
                    return promise.claim();
                }
            });
            System.out.println("Created issues:\n" + Joiner.on("\n").join(createdIssues));
        } finally {
            restClient.close();
        }
    }
}
编辑:

编辑2

[信息]正在扫描项目。。。[信息]
[信息]正在构建jrjc 1.0-SNAPSHOT[信息] [INFO][INFO]——maven资源插件:2.6:resources (默认资源)@jrjc---[警告]使用平台编码 (实际上是Cp1254)复制筛选的资源,即构建依赖于平台!>[INFO]正在复制0资源[INFO][INFO]--- maven编译器插件:3.1:compile(默认编译)@jrjc [信息]检测到更改-重新编译模块! [警告]未使用平台编码Cp1254设置文件编码,即生成依赖于平台![信息]正在将1个源文件编译为 C:\Users\Madara\workspace\jrjc master\target\classes [错误]编译错误 [错误]/C:/Users/Madara/workspace/jrjc-master/src/main/java/JRC.java:[17,81] -source 1.5(使用-source 8)中不支持lambda表达式 或更高版本以启用lambda表达式)[INFO]1错误[INFO] -------------------------------------------------------------[信息]-------------------------------------------------------------[信息]生成失败[信息] [信息]总时间:0.970秒[信息]完成时间: 2016-07-04T19:37:26+03:00[信息]最终内存:11M/245M[信息] [错误]无法执行目标 插件:maven编译器插件:3.1:编译 项目jrjc上的(默认编译):编译失败[错误] /C:/Users/Madara/workspace/jrjc-master/src/main/java/JRC.java:[17,81] -source 1.5[错误](使用)中不支持lambda表达式 -源8或更高版本以启用lambda表达式) [ERROR]->[Help 1][ERROR][ERROR]以查看的完整堆栈跟踪 如果出现错误,请重新运行 带-e开关的Maven。[错误]使用-X开关重新运行Maven以 启用完全调试日志记录。[错误][错误]以了解更多信息 关于错误和可能的解决方案,请阅读以下内容 文章:[错误][帮助1]


你从哪里得到API的信息的?atlassian上的文件已经过时了

首先,您的pom.xml应该如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.company</groupId>
<artifactId>jrjc</artifactId>
<version>1.0-SNAPSHOT</version>


<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.2</version>
        <scope>test</scope>
    </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>
    <dependency>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-rest-java-client-api</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-rest-java-client-core</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>14.0-rc1</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jettison</groupId>
        <artifactId>jettison</artifactId>
        <version>1.0.1</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.6.4</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
</dependencies>

<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>

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

4.0.0
com公司

我能够使用以下Java代码在Jira中创建并获取bug:

public Issue getIssue(String issueKey) throws Exception
{
    final URI jiraServerUri = new URI("https://yourJiraURI");

    final JiraRestClient restClient = new AsynchronousJiraRestClientFactory().createWithBasicHttpAuthentication(jiraServerUri, "yourUsername", "yourPassword");
    System.out.println("\n connecting... ");

    Promise issuePromise = restClient.getIssueClient().getIssue(issueKey);
    System.out.println("issuPromise... ");

    return (Issue) issuePromise.claim();
}

public Issue createIssue(String project, Long key, String summary, String description) throws Exception
{
    final URI jiraServerUri = new URI("https://yourJiraURI");

    System.out.println("\n connecting to create a bug... ");

    JiraRestClientFactory restClientFactory = new AsynchronousJiraRestClientFactory();
    JiraRestClient restClient = restClientFactory.createWithBasicHttpAuthentication(jiraServerUri, "yourUsername", "yourPassword");
    IssueRestClient issueClient = restClient.getIssueClient();

    IssueInputBuilder issueBuilder = new IssueInputBuilder(project, key, summary);
    issueBuilder.setDescription(description);   

    IssueType it = new IssueType(jiraServerUri, key, summary, false, "Testing the Issue creation", null);

    issueBuilder.setIssueType(it);
    IssueInput issueInput = issueBuilder.build();

    Promise<BasicIssue> promise = restClient.getIssueClient().createIssue(issueInput);
    BasicIssue basicIssue = promise.claim();
    Promise<Issue> promiseJavaIssue = restClient.getIssueClient().getIssue(basicIssue.getKey());

    Issue issue = promiseJavaIssue.claim();
    System.out.println(String.format("New issue created is: %s\r\n", issue.getSummary()));        


    return issue;
}
public Issue getIssue(字符串issueKey)引发异常
{
最终URI jiraServerUri=新URI(“https://yourJiraURI");
final JiraRestClient restClient=new AsynchronousJiraRestClientFactory().createWithBasichtpAuthentication(jiraServerUri,“您的用户名”,“您的密码”);
System.out.println(“\n正在连接…”);
Promise-issuePromise=restClient.getIssueClient().getIssue(issueKey);
System.out.println(“issuPromise…”);
退回(发出)发出许可证。索赔();
}
公共问题createIssue(字符串项目、长键、字符串摘要、字符串描述)引发异常
{
最终URI jiraServerUri=新URI(“https://yourJiraURI");
System.out.println(“\n正在连接以创建错误…”);
JiraRestClientFactory restClientFactory=new AsynchronousJiraRestClientFactory();
JiraRestClient restClient=restClientFactory.createWithBasicHttpAuthentication(jiraServerUri,“您的用户名”,“您的密码”);
IssueRestClient issueClient=restClient.getIssueClient();
IssueInputBuilder issueBuilder=新的IssueInputBuilder(项目、关键、摘要);
issueBuilder.setDescription(描述);
IssueType it=新的IssueType(jiraServerUri,key,summary,false,“测试问题创建”,null);
issueBuilder.setIssueType(it);
IssueInput IssueInput=issueBuilder.build();
Promise Promise=restClient.getIssueClient().createIssue(issueInput);
BasicIssue BasicIssue=promise.claim();
promiseJavaIssue=restClient.getIssueClient().getIssue(basicIssue.getKey());
Issue-Issue=promiseJavaIssue.claim();
System.out.println(String.format(“创建的新问题是:%s\r\n”,issue.getSummary());
退货问题;
}
POM.xml依赖项: 泽西岛:1.9 junit:4.8.2 jira rest java客户端-*:3.0.0 番石榴:14.0-rc1
commons logging:4.0.6

我意识到这些文档已经过时太晚了。我试过你的样品,但对我也不起作用。我应该为Jiraservuri发送什么?“”有效吗?您使用哪个url从浏览器访问jira?如果是“”,那么这就是jiraServerUri。如果使用https,则应该是“2”发生错误。错误测试:testGetIssue(JRCTest):主机名可能不为null,无法执行目标org.apache.maven.plugins:maven surefire plugin:2.12.4:project jrjc master上的测试(默认测试):存在测试失败。可能第一个导致第二个。你能帮我点灯吗?你能编辑你的问题来添加JRC类和JRCTest类吗?从“主机名可能不为空”开始,我认为您弄乱了JRC.java中的“新URI”行。顺便说一句,我刚刚将jiraServerUri更改为新的URI(“),我可以连接。当然,我得到了401,但那是因为我的登录凭据不正确。正如你希望的那样,我编辑了我的问题,没有隐藏登录信息,这样你可以根据需要尝试。别担心,这是一次性使用的帐户。你是如何消除此错误的?线程中的异常“main”“java.lang.NoClassDefFoundError:com/atlassian/sal/api/executor/ThreadLocalContextManager我面对的是同一个问题,我希望能得到任何帮助。仅供参考:我只是忘了添加存储库。谢谢!我花了几个小时试图让它与
IssueInput.createWithFields
一起工作,但它一直在生成错误的JSON。您的
IssueInputBuilder
可以使用相同的数据进行开箱即用。遗憾的是,它不允许将
issuetype
作为字符串传递。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.company</groupId>
<artifactId>jrjc</artifactId>
<version>1.0-SNAPSHOT</version>


<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.2</version>
        <scope>test</scope>
    </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>
    <dependency>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-rest-java-client-api</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-rest-java-client-core</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>14.0-rc1</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jettison</groupId>
        <artifactId>jettison</artifactId>
        <version>1.0.1</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.6.4</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
</dependencies>

<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>

<pluginRepositories>
    <pluginRepository>
        <id>atlassian-public</id>
        <url>https://m2proxy.atlassian.com/repository/public</url>
        <releases>
            <enabled>true</enabled>
            <checksumPolicy>warn</checksumPolicy>
        </releases>
        <snapshots>
            <checksumPolicy>warn</checksumPolicy>
        </snapshots>
    </pluginRepository>
</pluginRepositories>
public Issue getIssue(String issueKey) throws Exception
{
    final URI jiraServerUri = new URI("https://yourJiraURI");

    final JiraRestClient restClient = new AsynchronousJiraRestClientFactory().createWithBasicHttpAuthentication(jiraServerUri, "yourUsername", "yourPassword");
    System.out.println("\n connecting... ");

    Promise issuePromise = restClient.getIssueClient().getIssue(issueKey);
    System.out.println("issuPromise... ");

    return (Issue) issuePromise.claim();
}

public Issue createIssue(String project, Long key, String summary, String description) throws Exception
{
    final URI jiraServerUri = new URI("https://yourJiraURI");

    System.out.println("\n connecting to create a bug... ");

    JiraRestClientFactory restClientFactory = new AsynchronousJiraRestClientFactory();
    JiraRestClient restClient = restClientFactory.createWithBasicHttpAuthentication(jiraServerUri, "yourUsername", "yourPassword");
    IssueRestClient issueClient = restClient.getIssueClient();

    IssueInputBuilder issueBuilder = new IssueInputBuilder(project, key, summary);
    issueBuilder.setDescription(description);   

    IssueType it = new IssueType(jiraServerUri, key, summary, false, "Testing the Issue creation", null);

    issueBuilder.setIssueType(it);
    IssueInput issueInput = issueBuilder.build();

    Promise<BasicIssue> promise = restClient.getIssueClient().createIssue(issueInput);
    BasicIssue basicIssue = promise.claim();
    Promise<Issue> promiseJavaIssue = restClient.getIssueClient().getIssue(basicIssue.getKey());

    Issue issue = promiseJavaIssue.claim();
    System.out.println(String.format("New issue created is: %s\r\n", issue.getSummary()));        


    return issue;
}