禁止内置插件后JIRA无法启动 (Due to Disabled Bundled Plugin)

现象
如果JIRA中任何内置插件被禁止后, 就会出现下列错误:


JIRA 4.3.4 build: 620 started. You can now access JIRA through your web browser.


2011-06-26 15:26:23,639 main FATAL [atlassian.jira.startup.JiraStartupLogger]


The following plugins are required by JIRA, but have not been started: FishEye Plugin (com.atlassian.jirafisheyeplugin)


2011-06-26 15:26:23,661 main FATAL [atlassian.jira.upgrade.UpgradeLauncher] Skipping, JIRA is locked.
2011-06-26 15:26:23,661 main INFO [atlassian.jira.scheduler.JiraSchedulerLauncher] JIRA Scheduler not started: JIRA startup checklist failed.
2011-06-26 15:26:24,118 main FATAL [jira.web.dispatcher.JiraWebworkActionDispatcher]


JIRA startup failed, JIRA has been locked.


一旦出现上述错误, JIRA 就不可访问。

原因
内置插件是为了保证JIRA某些功能可以正常运转的插件包。 某些特殊情况下, 这些插件不能被使用。 然而,这些插件在JIRA 启动时必须加载。

当发生错误时,JIRA会被锁定,请参见: https://jira.atlassian.com/browse/JRA-22633 了解详细情况。

解决方案

  1. 登录数据库, 输入下面的查询语句:
    select * from propertyentry where property_key like ‘%plugin.state%’;

    输出结果就像下面的样子:
    ±------±----------------±----------±----------------------------------------------±-------------+
    | ID | ENTITY_NAME | ENTITY_ID | PROPERTY_KEY | propertytype |
    ±------±----------------±----------±----------------------------------------------±-------------+
    | 10600 | jira.properties | 1 | jira.plugin.state-.com.pyxis.greenhopper.jira | 5 |
    ±------±----------------±----------±----------------------------------------------±-------------+
    1 row in set (0.00 sec)

    查询结果会列示出这个实例中正在使用的插件。
    2.从查询结果显示的内容中查找到需要解决的插件.

3.找到这个插件,并记录下插件的ID号。

  1. 运行下列语句并检查插件的状态:
    select * from propertystring where id=;

    例如, 我们前面搜索的是 GreenHopper 插件:
    select * from propertystring where id=10600;
    ±------±--------------+
    | ID | propertyvalue |
    ±------±--------------+
    | 10600 | true |
    ±------±--------------+
    1 row in set (0.00 sec)

  2. 如果propertyvalue的值是 false, 你需要将其修改为 true.
    UPDATE propertystring SET propertyvalue=‘true’ WHERE ID=;

  3. 重启JIRA实例.