Kei*_*ana 8 tridion tridion2009 tridion-content-delivery tridion-2011
我们有一个应用程序,它通过发布动态组件表示动态生成菜单.menu.xml由基于Structure组的组件模板写出,这个组件模板通过事件系统触发,每当结构组发布时发表.
这个设置工作正常,直到Tridion 2011从Tridion 2009升级.但是自升级以来,菜单不会动态发布,并且每次结构组发生更改时都需要重新发布菜单组件模板.我们检查了事件系统,一切都很好.此外,这种菜单组件模板的重新发布会触发一些其他页面菜单中的问题.
在进行一些调试时(我们使组件模板写出了它正在处理的pageURI),我们发现正在写出的页面URI是错误的.
以下是采取的步骤和得出的结论:
所有错误的页面都已经过检查; DCP标记在JSP代码中设置了正确的属性
其他TRACE语句已添加到Tridion标记库中,这证实了以下内容:
使用提供的变量正确转换了XSLT
通过将XSLT属性写出到HTML,我们看到XSLT处理器正在提供错误的参数.
因此,我可以安全地得出结论,该问题已被隔离到以下事件中; 正在使用不正确的页面ID调用XSL处理器.最可能的原因是由于动态组件表示(DCP)java代码中的并发问题,DCP被群集并且开始混淆哪个页面正在使用当前对象.
如果是这种情况,可以采取哪些措施来纠正它.
任何信息都会有帮助.提前致谢!
问候,
Keirthana TS
2013年1月22日更新:
在更多调试中,我们发现此问题在Presentation端(我们的演示服务器)上重复出现,并且事件系统与页面上出现的错误菜单无关.
也就是说,当我们查看从Tridion发布的jsp页面时,我们有顶层菜单,左侧菜单和面包屑的正确页面URI:
<tridion:ComponentPresentation pageURI="tcm:57-186286-64" componentURI="tcm:57-103196" templateURI="tcm:57-23654-32"/><!-- privat-->
<div id="nav"><div class="wrapper">
<tridion:ComponentPresentation pageURI="tcm:57-186286-64" componentURI="tcm:57-23638" templateURI="tcm:57-23656-32" />
</div></div>
<div id="page" class="clear ">
<div id="content" class="clear">
<tridion:ComponentPresentation pageURI="tcm:57-186286-64" componentURI="tcm:57-23639" templateURI="tcm:57-23656-32" />
<div id="middle" class="rightcolumn">
<tridion:ComponentPresentation pageURI="tcm:57-186286-64" componentURI="tcm:57-23636" templateURI="tcm:57-23656-32" />
Run Code Online (Sandbox Code Playgroud)
但是,当我们查看网页的来源时,我们发现页面URI(我们将页面URI写入html页面)搞砸了如下:
<div id="middle" class="rightcolumn">
Run Code Online (Sandbox Code Playgroud)
生成面包屑我们得到一个不同的pageURI而不是正确的.
一些与发布相关的遗留 (VB) 事件在 Tridion 2011 中无法开箱即用。此处提供了一个遗留事件适配器:http://sdltridionworld.com/community/2011_extensions/LegacyEventAdapter.aspx。
| 归档时间: |
|
| 查看次数: |
215 次 |
| 最近记录: |