JIRA DataCenter自定义REST端点与Web Fragment报错求助
Jira ScriptRunner自定义REST端点关联Web Fragment时脚本执行错误
错误提示
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: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 Item Fragment
- 创建对应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() }
错误排查关键点
- 日志初始化错误:代码中
def log = Logger.warn("atlassian-jira.log")是错误用法,Logger.warn是日志输出方法,不能用来获取Logger实例。正确写法应为def log = Logger.getLogger("MounaBulkSummary")或Logger.getLogger(this.class),这行错误代码会直接抛出异常导致脚本执行失败。 - 请求路径异常:错误日志显示请求路径为
/rest/scriptrunner/behaviours/latest/validators.json,说明错误来自Behaviour验证脚本,而非自定义REST端点。需要检查链接中对应的8、17、21这几个Behaviour脚本,排查是否存在脚本错误,或Web Fragment配置是否错误触发了Behaviour验证。 - 空值未处理:
queryParams.getFirst("issueId")可能为空,直接转Long会抛出异常;user和issue也可能为空,后续调用user.key或issue.key会触发空指针异常。 - 端点配置校验:确认Web Fragment的链接是否正确指向自定义REST端点,参数传递是否正确(比如是否正确传递
issueId参数)。
内容的提问来源于stack exchange,提问作者منى
相关产品推荐
相关产品推荐

