Hi,
I upgraded from 1.3 to 1.4.2. There were supposed to be no breaking
changes, and everything seems fine.. except my second server (running
on the same box) was no longer on the dashboard.
So I edited the dashboard.config file, like this:
<dashboard>
<remoteServices>
<servers>
<!-- Update this list to include all the servers you want
to connect to. NB - each server name must be unique -->
<server name="local" url="tcp://localhost:21234/
CruiseManager.rem" allowForceBuild="true" allowStartStopBuild="true" /
>
</servers>
</remoteServices>
</dashboard>
to:
<dashboard>
<remoteServices>
<servers>
<!-- Update this list to include all the servers you want
to connect to. NB - each server name must be unique -->
<server name="devel" url="tcp://localhost:21234/
CruiseManager.rem" allowForceBuild="true" allowStartStopBuild="true" /
>
<server name="maint" url="tcp://localhost:21235/
CruiseManager.rem" allowForceBuild="true" allowStartStopBuild="true" /
>
</servers>
</remoteServices>
</dashboard>
The dashboard then breaks, although both servers are listed on the
left:
There was an exception trying to carry out your request. Details of
the Exception are:
Exception Message
Exception calling NVelocity for template: ProjectGrid.vm Template path
is C:\Program Files\CruiseControl.NET\webdashboard\templates
Exception Full Details
ThoughtWorks.CruiseControl.Core.CruiseControlException: Exception
calling NVelocity for template: ProjectGrid.vm Template path is C:
\Program Files\CruiseControl.NET\webdashboard\templates --->
NVelocity.Exception.MethodInvocationException: Invocation of method
'BuildStage' in
ThoughtWorks.CruiseControl.WebDashboard.Dashboard.ProjectGridRow,
template ProjectGrid.vm Line 110 Column 26 threw an exception --->
System.NullReferenceException: Object reference not set to an instance
of an object. at
ThoughtWorks.CruiseControl.WebDashboard.Dashboard.ProjectGridRow.get_BuildStage
() --- End of inner exception stack trace --- at
NVelocity.Runtime.Parser.Node.ASTIdentifier.Execute(Object o,
IInternalContextAdapter context) at
NVelocity.Runtime.Parser.Node.ASTReference.Execute(Object o,
IInternalContextAdapter context) at
NVelocity.Runtime.Parser.Node.ASTReference.Value
(IInternalContextAdapter context) at
NVelocity.Runtime.Parser.Node.ASTGTNode.Evaluate
(IInternalContextAdapter context) at
NVelocity.Runtime.Parser.Node.ASTExpression.Evaluate
(IInternalContextAdapter context) at
NVelocity.Runtime.Parser.Node.ASTIfStatement.Render
(IInternalContextAdapter context, TextWriter writer) at
NVelocity.Runtime.Parser.Node.ASTBlock.Render(IInternalContextAdapter
context, TextWriter writer) at
NVelocity.Runtime.Directive.Foreach.Render(IInternalContextAdapter
context, TextWriter writer, INode node) at
NVelocity.Runtime.Parser.Node.ASTDirective.Render
(IInternalContextAdapter context, TextWriter writer) at
NVelocity.Runtime.Parser.Node.ASTBlock.Render(IInternalContextAdapter
context, TextWriter writer) at
NVelocity.Runtime.Parser.Node.ASTIfStatement.Render
(IInternalContextAdapter context, TextWriter writer) at
NVelocity.Runtime.Parser.Node.SimpleNode.Render
(IInternalContextAdapter context, TextWriter writer) at
NVelocity.Template.Merge(IContext context, TextWriter writer) at
NVelocity.App.VelocityEngine.MergeTemplate(String templateName, String
encoding, IContext context, TextWriter writer) at
ThoughtWorks.CruiseControl.WebDashboard.MVC.View.LazilyInitialisingVelocityTransformer.Transform
(String transformerFileName, Hashtable transformable) --- End of inner
exception stack trace --- at
ThoughtWorks.CruiseControl.WebDashboard.MVC.View.LazilyInitialisingVelocityTransformer.Transform
(String transformerFileName, Hashtable transformable) at
ThoughtWorks.CruiseControl.WebDashboard.MVC.View.VelocityViewGeneratorWithTransformer.GenerateView
(String templateName, Hashtable velocityContext) at
ThoughtWorks.CruiseControl.WebDashboard.Dashboard.VelocityProjectGridAction.GenerateView
(ProjectStatusListAndExceptions projectStatusListAndExceptions, String
actionName, IRequest request, IServerSpecifier serverSpecifier) at
ThoughtWorks.CruiseControl.WebDashboard.Dashboard.VelocityProjectGridAction.Execute
(String actionName, IRequest request) at
ThoughtWorks.CruiseControl.WebDashboard.Plugins.FarmReport.FarmReportFarmPlugin.Execute
(ICruiseRequest request) at
ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.CruiseActionProxyAction.Execute
(IRequest request) at
ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ExceptionCatchingActionProxy.Execute
(IRequest request)
Any ideas
Thanks
Andy