【问题标题】:page is giving error when previewing with page template designed for XSLT TBB使用为 XSLT TBB 设计的页面模板进行预览时页面出现错误
【发布时间】:2012-03-28 15:39:10
【问题描述】:

我正在使用来自 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) 您使用的是什么版本的 Tridion? 2) 您是否使用复合组件模板 3) 您提到了 XSLT TBB,您是否使用来自 SDLTridionWorld.com 的 XSLT 调解器 4) 您是否能够在没有页面的情况下仅预览 ComponentPresentation 的输出?
  • 1.我正在使用 sdl tridion 2011 sp1 2.是的,我正在使用复合组件模板 3.我正在使用来自 SDL TridionWorld.com 的 XSLT 调解器 4.我能够在没有页面。
  • 您能否在模板生成器中运行您的模板并检查究竟是哪个模板发生了错误?
  • 问题已经验证..TBB中的一些问题。
  • 这是否意味着您解决了问题,或者只是验证了错误在您的 XSLT TBB 中?如果解决了,请投票给任何对您有帮助的 cmets。

标签: tridion


【解决方案1】:

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

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

Tridion.ContentManager.Templating.TcdlParser.Process(Item,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(Engine,Template,Package)

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

【讨论】:

    猜你喜欢
    • 2011-01-09
    • 2021-02-11
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    相关资源
    最近更新 更多