-5

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 フラグメントを生成するように設定されています。

4

1 に答える 1

1

TBBの問題は、C#フラグメントやアセンブリではなくXSLTタイプを使用する必要があるテンプレートビルディングブロック(TBB)のCMEビューの設定が不適切だったと思われます(以下の名前空間から推測しています)。

スタックトレースにXSLTメディエーター名前空間が表示されません(これが不適切な仮定である場合は、これを更新してください)。

Tridion.ContentManager.Templating.TcdlParser.Process(Item、TagHandler)Tridion.ContentManager.Templating.Templates.EnableSiteEdit.Transform(Engine、Package)Tridion.ContentManager.Templating.Assembly.AssemblyMediator.Transform(Engine、Template、Package)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)

他の誰かが問題を抱えている場合に備えて、手順はかなり徹底しています。

于 2012-03-27T03:57:39.497 に答える