Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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
Java 创建和检索JIRA远程问题链接_Java_Groovy_Jira - Fatal编程技术网

Java 创建和检索JIRA远程问题链接

Java 创建和检索JIRA远程问题链接,java,groovy,jira,Java,Groovy,Jira,我正在尝试为JIRAV5.x编写一个转换post函数。它应该检查是否已经有与问题链接的合流页面,如果没有,则创建并链接页面。 我正在使用groovy脚本和scriptrunner插件来开发它,该插件可以访问JavaAPI 虽然创建confluence页面相当容易,但我正在努力处理远程问题链接 如何创建新的远程问题链接 如何确定某个问题的链接是否已存在 以下是我尝试创建链接的方式: import com.atlassian.jira.ComponentManager import com.at

我正在尝试为JIRAV5.x编写一个转换post函数。它应该检查是否已经有与问题链接的合流页面,如果没有,则创建并链接页面。 我正在使用groovy脚本和scriptrunner插件来开发它,该插件可以访问JavaAPI

虽然创建confluence页面相当容易,但我正在努力处理远程问题链接

  • 如何创建新的远程问题链接
  • 如何确定某个问题的链接是否已存在
以下是我尝试创建链接的方式:

import com.atlassian.jira.ComponentManager
import com.atlassian.jira.bc.issue.link.RemoteIssueLinkService
import com.atlassian.jira.issue.link.RemoteIssueLinkBuilder

//I use a wrapper class for the moment so I can run via scriptrunner and debug it in IDEA
class myWrapper {

    def doStuff() {

        //get the issue, this would already be available in an post action
        def issueService = ComponentManager.getInstance().getIssueService();
        def authContext = ComponentManager.getInstance().getJiraAuthenticationContext()

        def issueResult = issueService.getIssue(authContext.getUser(), "DEV-1");
        def issue = issueResult.getIssue()

        //build link
        def linkBuilder = new RemoteIssueLinkBuilder()
        linkBuilder.issueId(issue.id)
        linkBuilder.applicationName("myconluence")
        linkBuilder.applicationType("com.atlassian.confluence")
        linkBuilder.relationship("Wiki Page")
        linkBuilder.title("testpage")
        linkBuilder.url("http://localhost:8090/display/LIN/testpage")
        linkBuilder.build()

        def validationResult = RemoteIssueLinkService.validateCreate(authContext.getUser(), linkBuilder)

    }
}

(new myWrapper()).doStuff()
运行代码时,会出现以下异常:

javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: static com.atlassian.jira.bc.issue.link.RemoteIssueLinkService.validateCreate() is applicable for argument types: (com.atlassian.crowd.embedded.ofbiz.OfBizUser, com.atlassian.jira.issue.link.RemoteIssueLinkBuilder) values: [admin:1, com.atlassian.jira.issue.link.RemoteIssueLinkBuilder@180ca9]

对我来说,似乎我没有正确获得RemoteIssueLinkService,但我不知道我必须做些什么来修复它。

我在报告中问了同样的问题。这是我从杰米·埃克林那里得到的工作答案,供将来参考


它不是静态方法,因此需要首先获取类的实例:

def remoteIssueLinkService = ComponentManager.getComponentInstanceOfType(RemoteIssueLinkService.class)

remoteIssueLinkService.validateCreate(...)


你试过什么吗?@njk问了问题48小时后,你无法接受自己的答案question@Kuf不知什么原因,我以为是24小时。