首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的JIRA DataCenter REST端点不工作

简单的JIRA DataCenter REST端点不工作
EN

Stack Overflow用户
提问于 2022-08-16 18:53:08
回答 1查看 102关注 0票数 0

我试图使用相应的web片段执行REST端点,但是我得到了错误:

代码语言:javascript
复制
script function failed on issue: issue: SF-347, user: mouh, fieldId: __init__, file: <inline script>, edit behaviour: https://itrac-dev.eur.ad.sag/plugins/servlet/scriptrunner/admin/behaviours/edit/8, https://itrac-dev.eur.ad.sag/plugins/servlet/scriptrunner/admin/behaviours/edit/17, https://itrac-dev.eur.ad.sag/plugins/servlet/scriptrunner/admin/behaviours/edit/21
Here is my error log here below:
2022-08-16 20:39:37,512+0200 https-openssl-nio-443-exec-278 ERROR mouh 1239x60320x27 mu7qce 10.248.27.109 /rest/scriptrunner/behaviours/latest/validators.json [c.o.jira.behaviours.BehaviourManagerImpl] Script function failed on issue: issue: SF-347, user: mouh, fieldId: __init__, file: <inline script>, edit behaviour: https://itrac-dev.eur.ad.sag/plugins/servlet/scriptrunner/admin/behaviours/edit/8, https://itrac-dev.eur.ad.sag/plugins/servlet/scriptrunner/admin/behaviours/edit/17, https://itrac-dev.eur.ad.sag/plugins/servlet/scriptrunner/admin/behaviours/edit/21
2022-08-16 20:39:36,371+0200 https-openssl-nio-443-exec-278 WARN mouh 1239x60311x26 mu7qce 10.248.27.109 /browse/SF-347 [c.s.j.p.r.rest.api.MicroDashBoard] getiTracReleaseInfo for user "mouh" took 0 ms
2022-08-16 20:39:36,371+0200 https-openssl-nio-443-exec-278 WARN mouh 1239x60311x26 mu7qce 10.248.27.109 /browse/SF-347 [c.s.j.p.r.rest.api.MicroDashBoard] getiTracReleaseInfo for user "mouh" - "green" -0
2022-08-16 20:39:36,371+0200 https-openssl-nio-443-exec-278 WARN mouh 1239x60311x26 mu7qce 10.248.27.109 /browse/SF-347 [c.s.j.p.r.rest.api.MicroDashBoard] getiTracReleaseInfo for user "mouh" took 0 ms
2022-08-16 20:39:36,371+0200 https-openssl-nio-443-exec-278 WARN mouh 1239x60311x26 mu7qce 10.248.27.109 /browse/SF-347 [c.s.j.p.r.rest.api.MicroDashBoard] getiTracReleaseInfo for user "mouh" - "yellow" -0
2022-08-16 20:39:36,371+0200 https-openssl-nio-443-exec-278 WARN mouh 1239x60311x26 mu7qce 10.248.27.109 /browse/SF-347 [c.s.j.p.r.rest.api.MicroDashBoard] getiTracReleaseInfo for user "mouh" took 0 ms
2022-08-16 20:39:36,371+0200 https-openssl-nio-443-exec-278 WARN mouh 1239x60311x26 mu7qce 10.248.27.109 /browse/SF-347 [c.s.j.p.r.rest.api.MicroDashBoard] getiTracReleaseInfo for user "mouh" - "red" -0

我不明白为什么我有这个错误,我的代码非常简单。下面是我创建web片段的方式:

这是我创建的自定义web项目片段的屏幕截图:

这是我创建的相应REST端点:

我将文件MounaBulkSummary.groovy指定为包含REST端点代码的文件。

以下是文件MounaBulkSummary.groovy的内容

代码语言:javascript
复制
import groovy.transform.BaseScript

import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate

import javax.ws.rs.core.MultivaluedMap

import com.atlassian.jira.component.ComponentAccessor

import com.onresolve.scriptrunner.runner.ScriptRunnerImpl

import com.atlassian.sal.api.ApplicationProperties

import com.atlassian.sal.api.UrlMode

import javax.ws.rs.core.Response

import org.apache.log4j.Logger

def log = Logger.warn("atlassian-jira.log")

    log.warn("MOUNA BULK")

@BaseScript CustomEndpointDelegate delegate

MounaBulkSummary(httpMethod: "GET") { MultivaluedMap queryParams ->

    log.warn("MOUNA BULK")

    def user = ComponentAccessor.jiraAuthenticationContext?.loggedInUser

    def issue = ComponentAccessor.getIssueManager().getIssueObject(queryParams.getFirst("issueId") as Long)

    def baseUrl = ScriptRunnerImpl.getOsgiService(ApplicationProperties).getBaseUrl(UrlMode.ABSOLUTE)

    def redirectUrl = "https://secapps.eur.ad.sag:9888/FPIA/?iTrac=${issue.key}&reporter=${user.key}&baseURL=${baseUrl}"

    Response.temporaryRedirect(URI.create(redirectUrl)).build()

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-16 20:03:32

我发现了我的错误,我需要在URL中使用调用。REST的代码如下:

代码语言:javascript
复制
import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
import groovy.json.JsonBuilder
import groovy.transform.BaseScript
import com.atlassian.jira.issue.Issue;

import javax.ws.rs.core.MultivaluedMap
import javax.ws.rs.core.Response
import org.apache.log4j.Logger
import groovy.transform.BaseScript
import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
import javax.ws.rs.core.MultivaluedMap
import com.atlassian.jira.component.ComponentAccessor
import com.onresolve.scriptrunner.runner.ScriptRunnerImpl
import com.atlassian.sal.api.ApplicationProperties
import com.atlassian.sal.api.UrlMode
import javax.ws.rs.core.Response
import com.atlassian.jira.component.ComponentAccessor

@BaseScript CustomEndpointDelegate delegate
def log = Logger.getLogger("atlassian-jira.log")


long iTracSuperFeatureSummaryUpdaterIssueTypeID= 10200; 
int  iTracSuperFeatureSummaryUpdaterProjectID= 23520; 
String iTracSuperFeatureSummaryUpdaterURL=  "http://itrac-service:8080/bulksummaryupdater/bulksplitter?key=:1:&reporter=:2:";  

callMounaBulkSummary(httpMethod: "GET", groups: ["jira-administrators"]) { MultivaluedMap queryParams, String body ->
    log.warn("MOUNA BULK")
    def user = ComponentAccessor.jiraAuthenticationContext?.loggedInUser
    Issue issue = ComponentAccessor.getIssueManager().getIssueObject(queryParams.getFirst("issueId") as Long)
   def project = issue.getProject()
    def baseUrl = ScriptRunnerImpl.getOsgiService(ApplicationProperties).getBaseUrl(UrlMode.ABSOLUTE)
      log.warn("MOUNA BULK "+user+" "+issue+" "+baseUrl+" "+project +" "+project.get("id"))
      iTracSuperFeatureSummaryUpdaterURL= iTracSuperFeatureSummaryUpdaterURL.replaceAll(":1:", issue.getKey())
   iTracSuperFeatureSummaryUpdaterURL= iTracSuperFeatureSummaryUpdaterURL.replaceAll(":2:",  user.getUsername())
    def projectID=project.get("id")
    int projectIDInt= projectID as int
      if(iTracSuperFeatureSummaryUpdaterProjectID== projectIDInt && iTracSuperFeatureSummaryUpdaterIssueTypeID==Long.valueOf(issue.getIssueTypeId()) ){
   
    Response.temporaryRedirect(URI.create(iTracSuperFeatureSummaryUpdaterURL)).build()
      }

}

作为类似REST端点的其他代码:

代码语言:javascript
复制
 import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
    import groovy.json.JsonBuilder
    import groovy.transform.BaseScript
    import com.atlassian.jira.issue.Issue;  
    import javax.ws.rs.core.MultivaluedMap
    import javax.ws.rs.core.Response
    import org.apache.log4j.Logger
    import groovy.transform.BaseScript
    import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
    import javax.ws.rs.core.MultivaluedMap
    import com.atlassian.jira.component.ComponentAccessor
    import com.onresolve.scriptrunner.runner.ScriptRunnerImpl
    import com.atlassian.sal.api.ApplicationProperties
    import com.atlassian.sal.api.UrlMode
    import javax.ws.rs.core.Response
    import com.atlassian.jira.component.ComponentAccessor
    
    @BaseScript CustomEndpointDelegate delegate
    def log = Logger.getLogger("atlassian-jira.log")
    
    int iTracSuperFeatureSplitterIssueTypeID= 10200; 
    int iTracSuperFeatureSplitterProjectID= 23520; 
    String iTracSuperFeatureSplitterURL= "http://itrac-service:8080/featuregenerator/bulksplitter?key=:1:&reporter=:2:"; 
    
    callMounaBulkSplitter(httpMethod: "GET", groups: ["jira-administrators"]) { MultivaluedMap queryParams, String body ->
        log.warn("MOUNA BULK")
        def user = ComponentAccessor.jiraAuthenticationContext?.loggedInUser
        Issue issue = ComponentAccessor.getIssueManager().getIssueObject(queryParams.getFirst("issueId") as Long)
       def project = issue.getProject()
        def baseUrl = ScriptRunnerImpl.getOsgiService(ApplicationProperties).getBaseUrl(UrlMode.ABSOLUTE)
          log.warn("MOUNA BULK "+user+" "+issue+" "+baseUrl+" "+project +" "+project.get("id"))
          iTracSuperFeatureSplitterURL= iTracSuperFeatureSplitterURL.replaceAll(":1:", issue.getKey())
       iTracSuperFeatureSplitterURL= iTracSuperFeatureSplitterURL.replaceAll(":2:", user.getUsername())
        def projectID=project.get("id")
        int projectIDInt= projectID as int
          if(iTracSuperFeatureSplitterProjectID== projectIDInt && iTracSuperFeatureSplitterIssueTypeID==Long.valueOf(issue.getIssueTypeId()) ){
       
        Response.temporaryRedirect(URI.create(iTracSuperFeatureSplitterURL)).build()
          }
    
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73378971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档