在TeamCity 8中,我编写了一个插件,使用以下代码为构建结果添加自定义选项卡:
public class BuildUtilitiesTab extends SimpleCustomTab
{
public BuildUtilitiesTab(@NotNull PagePlaces pagePlaces, @NotNull final PluginDescriptor descriptor)
{
super(pagePlaces, PlaceId.BUILD_RESULTS_TAB, "buildUtilitiesTab", descriptor.getPluginResourcesPath("buildUtilities.jsp"), "Build Utilities");
register();
}
}
这会在构建结果中添加一个名为“Build Utilities”的选项卡以及“Overview”,“Changes”,“Build Log”等。单击此选项卡将启动我的JSP文件buildUtilities.jsp。我想显示构建机器和结帐位置。
我想我应该写下以下内容:
<jsp:useBean id="build" type="jetbrains.buildServer.serverSide.SBuild" scope="request">
TeamCity的BuildOverview.jsp页面使用了它。但是我得到以下结论:
ERROR - jetbrains.buildServer.SERVER - Error java.lang.InstantiationException: bean build not found within scope while processing request: GET '/buildLog/viewLog.jsp?buildTypeId=Abc_Abc&buildId=1&tab=redGateTeamCityBuildUtilitiesTab', from client 127.0.0.1:64038, authenticated as david, original page URL: /viewLog.html?buildTypeId=Abc_Abc&buildId=1&tab=redGateTeamCityBuildUtilitiesTab
java.lang.InstantiationException: bean build not found within scope
有没有人知道你应该如何在这种情况下使用bean,或者是否有其他方式来访问这些信息?
答案 0 :(得分:0)
<jsp:useBean id="buildData" type="jetbrains.buildServer.serverSide.SBuild" scope="request">
id应该是“buildData”而不是“build”。
感谢JetBrains的Maxim Podkolzine。