我有一个类似的问题,但到目前为止还没有得到满意的答案。我的进一步研究将我引向了不同的方向(将所有内容记录到日志文件并让 jira 管理员处理它)。但是,您可以尝试使用另一个可用于此目的的工作流插件模块:验证器模块。它的代码在用户提交转换对话框后立即触发,但在转换被接受之前(它用于验证对话框中的所有输入参数是否对当前转换有效)。因此,您可能会采取一种方法,使用验证器来检查服务是否已启动,如果未启动则抛出异常。这样,如果远程服务不可用,当然会阻止 JIRA 中的正常工作流。
另一种解决方案(您可能会发现对您的情况更方便)是通过添加 webwork 模块来扩展 JIRA View 操作。首先,在 atlassian-plugin.xml 文件中添加一个新的 webwork 模块:
<webwork1 key="view-issue" name="View issue with warnings" class="java.lang.Object">
<description>View issue with warnings</description>
<actions>
<action name="com.my.jira.plugin.blah.blah.ExtendedViewIssue" alias="ViewIssue">
<view name="success">/secure/views/issue/extended-viewissue.jsp</view>
<view name="issuenotfound">/secure/views/issuenotfound.jsp</view>
<view name="permissionviolation">/secure/views/permissionviolation.jsp</view>
<command name="moveIssueLink" alias="MoveIssueLink">
<view name="error">/secure/views/issue/viewissue.jsp</view>
</command>
</action>
</actions>
</webwork1>
然后,用您的 ExtendedViewIssue 覆盖类ViewIssue(见上文)并添加一个公共方法来检查您的服务是否可用,并且将从显示问题的 JSP 页面调用该方法:
public boolean isServiceAvailable() {
// TODO your code that checks if the service is available
return false;
}
编辑文件extended-viewissue.jsp并添加一个 div,如果满足条件,则该 div 将包含您的警告。
<ww:if test="/isServiceAvailable() == false">
<div class="aui-message warning">
<span class="aui-icon icon-warning">The service is not available!</span>
</div>
</ww:if>
如果操作正确,它应该看起来像这样:
请记住,每次 JIRA 升级后,您都必须再次编辑 JSP 文件,因为您在其中引入的更改可能会在升级过程中丢失。