我试图使用相应的web片段执行REST端点,但是我得到了错误:
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的内容
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()
}发布于 2022-08-16 20:03:32
我发现了我的错误,我需要在URL中使用调用。REST的代码如下:
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端点的其他代码:
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()
}
}https://stackoverflow.com/questions/73378971
复制相似问题