使用为XSLT TBB设计的页面模板进行预览时,页面出错

时间:2012-03-12 08:19:25

标签: tridion

我正在使用SDL Tridion World的XSLT Mediator在Tridion 2011 SP1中开发XSLT TBB。我已经为它创建了一个XSLT TBB,组件模板和页面模板以及一个页面。但是,当我尝试预览页面时,我创建的页面模板会出现以下错误:

  

XmlResponder渲染请求失败:

<tcmapi:Message version="6.0" from="Anguilla" xmlns:tcmapi="http://www.tridion.com/ContentManager/5.0/TCMAPI">
    <tcmapi:Response ID="acc265b4-d01f-4dec-8d8e-0b4fc1039160" success="false" xmlns:tcmapi="http://www.tridion.com/ContentManager/5.0/TCMAPI">
        <tcmapi:Error>
            <tcm:Error ErrorCode="80040000" Category="18" Source="Kernel" Severity="1" xmlns:tcm="http://www.tridion.com/ContentManager/5.0">
                <tcm:Line ErrorCode="80040000" Cause="false" MessageID="16138"><![CDATA[Unable to get rendered content of Page (tcm:9-511-64).]]></tcm:Line>
                <tcm:Line ErrorCode="80040000" Cause="true"><![CDATA[Object reference not set to an instance of an object.]]></tcm:Line>
                <tcm:Details>
                    <tcm:CallStack>
                        <tcm:Location>Tridion.ContentManager.Templating.TcdlParser.Process(Item,TagHandler)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Templating.Templates.EnableSiteEdit.Transform(Engine,Package)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Templating.Assembly.AssemblyMediator.Transform(Engine,Template,Package)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Templating.Assembly.CSharpSourceCodeMediator.RunTemplate(Engine,Package,String,String)</tcm:Location>
                        <tcm:Location>Tridion.Templating.CSharpTemplate.CSharpSourceTemplate.Transform(Engine,Package)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Templating.Assembly.CSharpSourceCodeMediator.Transform(Engine,Template,Package)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Templating.Engine.ExecuteTemplate(Template,Package)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Templating.Engine.InvokeTemplate(Package,TemplateInvocation,Template)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Templating.Compound.CompoundTemplateMediator.Transform(Engine,Template,Package)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Templating.Engine.ExecuteTemplate(Template,Package)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Templating.Engine.InvokeTemplate(Package,TemplateInvocation,Template)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Templating.Engine.TransformPackage(Template,Package)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Templating.TemplatingRenderer.Render(ResolvedItem,PublishInstruction,PublicationTarget,RenderedItem,RenderContext)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Publishing.Rendering.RenderEngine.Render(ResolvedItem,PublishInstruction,PublicationTarget,RenderContext)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Publishing.Rendering.RenderEngine.Render(IdentifiableObject,Template,PublishInstruction,PublicationTarget,RenderContext)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Publishing.Rendering.ComWrapper.RenderEngineFacade.RenderItemWithTemplate(IdentifiableObject,Template,PublishInstruction,PublicationTarget,RenderContext)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Publishing.Rendering.ComWrapper.RenderEngineFacade.RenderItemWithTemplate(IdentifiableObject,Template,String)</tcm:Location>
                        <tcm:Location>Tridion.ContentManager.Publishing.Rendering.ComWrapper.RenderEngineFacade.RenderPage(UserContext,String,String,String)</tcm:Location>
                        <tcm:Location>UtilitiesPublish.RenderPage</tcm:Location>
                        <tcm:Location>Page.Render</tcm:Location>
                        <tcm:Location>Request.Render</tcm:Location>
                    </tcm:CallStack>
                </tcm:Details>
            </tcm:Error>
        </tcmapi:Error>
    </tcmapi:Response>
</tcmapi:Message>

我创建的页面模板DWT如下所示:

<html>
<body>
<!-- TemplateBeginRepeat name="Components" -->
    @@RenderComponentPresentation()@@
<!-- TemplateEndRepeat -->
</body>
</html>

我在页面模板中启用了“启用SiteEdit 2009”和“默认完成操作”。我的化合物组件模板设置为生成XML片段作为其输出类型。

1 个答案:

答案 0 :(得分:1)

我怀疑TBB的问题是模板构建块(TBB)的CME视图中的一个错误设置,它需要使用XSLT类型,而不是C#片段或汇编(我猜测来自下面的命名空间)

我没有在堆栈跟踪中看到XSLT Mediator命名空间(如果这是一个错误的假设,请更新它。)

  

Tridion.ContentManager.Templating.TcdlParser.Process(项目,TagHandler)   Tridion.ContentManager.Templating.Templates.EnableSiteEdit.Transform(发动机,包)   Tridion.ContentManager.Templating.Assembly.AssemblyMediator.Transform(发动机,模板,包)   Tridion.ContentManager.Templating.Assembly。 CSharpSourceCodeMediator .RunTemplate(Engine,Package,String,String)Tridion.Templating.CSharpTemplate。 CSharpSourceTemplate .Transform(Engine,Package)   Tridion.ContentManager.Templating.Assembly。的 CSharpSourceCodeMediator .Transform(发动机,模板,包)

instructions are pretty thorough以防其他人遇到问题。