问题标签 [tridion-storage-extension]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tridion - 在 Tridion 2011 SP1 中实现存储扩展时未定义命名的 bean
我正在尝试使用以下示例实现存储扩展,
我创建了与上面示例中使用的名称相同的 DAO 和其他文件。创建这些文件后,我使用 eclipse 构建我的代码并将其转换为 .JAR 文件名 (cd_search_Indexer)。
1) 我将我的 jar 文件复制到我的演示文稿 tridion_home/lib 文件夹
2) 我创建了名为 search_dao_bundle.xml 的捆绑 xml,如下所示,并放置在我的 cd_storage_xml 所在的相同位置,即 tridion_home/config。
3) 之后,我将捆绑条目添加到我的 cd_storage_conf.xml 中,如下所示:
在下面我创建了我的新存储类型,如下所示:
在那之后,我在下面做了项目映射
4)我重新启动了我的部署服务,在我的核心日志中出现了以下异常
编辑:以下是我创建 DAO、实体和接口类所遵循的步骤。
1) 打开日食 helios
2) 创建了一个名为“Storage Extension”的项目
3) 创建新文件夹“lib”并添加所有 tridion_home/lib
4)创建新包“com.tridion.storage.extension.search”
5) 添加了我的 DAO、Entity 和 Interface java 类
6) 在参考中添加了“lib”罐子
7)构建转换为jar的包(cd_storage_indexer)
8) 将构建 jar 复制到 tridion_home/lib
9)按照米海的建议休息。
tridion - 在 Tridion 2011 SP1 的存储扩展中未调用 DAO 类中的已实现方法
我实现的方法没有从 DAO 类中调用。
我创建了名为 search_dao_bundle.xml 的捆绑 xml,如下所示,并放置在相同的位置,即我的 cd_storage_xml 所在的 tridion_home/config。
之后,我将捆绑条目添加到我的 cd_storage_conf.xml 中,如下所示:
在下面我创建了我的新存储类型,如下所示:
在那之后,我在下面做了项目映射
我重新启动了我的部署服务在我的核心日志中出现了以下异常
下面是我从 Mihai Code 中获取的示例 DAO 类:
我能够看到我的构造函数被调用,即我在我的核心文件日志中获取这些日志
但是我没有得到任何用其他方法写的日志,比如方法public PublishAction store log.debug("JPAPublishActionDAO store");
log.debug("JPAPublishActionDAO findByPrimaryKey");
log.debug("JPAPublishActionDAO 更新");
可能是什么原因,我有与给出的示例代码相同的名称(PublishAction.java)和接口类(PublishActionDAO.java)的实体类。
tridion - 无法持久化数据实体,提交事务时出错
我成功地编写了部署程序扩展和存储扩展。
以下是我从核心日志中获取的日志,显示所有内容都已完美加载!!
现在,当我尝试将数据存储在我的表中时,我收到“发生异常 com.tridion.broker.StorageException:无法持久化数据实体,提交事务时出错,提交事务时出错”
这是我的实体类的任何问题还是我缺少的东西。
编辑:在 logback xml 中启用记录器级别“ON”之后。
我在核心文件中遇到以下异常:
谢谢
tridion - 如何在取消发布 Tridion 页面时使用 Hibernate 从表中获取主键 ID 以更新表
我已经成功地使用我的自定义部署程序填充了我的存储扩展表,现在我可以看到如果用户发布任何页面,我的记录就会完美无缺。
现在我要处理Unpublishing部分,所以我写了Custom page undeployer,请看下面的示例代码:
在上面的代码中,您可以看到我正在尝试更新我的新存储扩展“PublishAction”,但是当我尝试从要修改的记录的表中获取 ID 时,我总是将 ID 设为 0,因为我不是能够从表中获取 ID。
请建议在我的 DAO 中需要实现什么来从表中获取需要更新的记录的 ID。
谢谢。
java - 如何在组件表示存储扩展中获取组件对象
我正在尝试在 Tridion 2011 中编写存储扩展,我将在其中扩展JPAComponentPresentationDAO
和实现ComponentPresentationDAO
.
在上面的示例代码中,我想使用itemToCreate.getComponentId()
获取组件 ID 的位置创建 Component 对象,这样我就可以将一些有用的细节传递给我的实体类,该实体类会将这些数据存储在我的数据库表中。
tridion - 如何使用 Tridion 2011 中的自定义 DAO 在我的存储扩展中仅存储 PDF 类型的二进制文件
我已经编写了自定义 DAO,以便在 Tridion 2011 的持久性类型的存储扩展中为我的二进制文件添加/更新/删除特定记录。
下面是我试图在我的自定义二进制 DAO ( ) 中使用我的自定义 DAO 类/接口 (PublishActionDAO
和) 的示例代码。PublishAction
JPABinaryDAOExtension
以上是创建新二进制文件时添加的示例代码,更新和删除也是如此,我将 Action 存储为Add,二进制发布 URL,它的 TCMURI。我可以在上面的代码中轻松获取这些数据。现在我面临的问题是我只需要存储 PDF 类型的二进制文件和其他类型的二进制文件(如(JPG/Word 等)没有记录条目)的记录。
编辑:下面的解决方案对我有用,或者为二进制文件制作对象会降低性能。
tridion - 在 tridion 存储扩展中,每个创建和更新方法被调用两次
我无法弄清楚为什么我的创建和更新方法的自定义文件系统 DOA 被调用了两次,所以我在自定义存储扩展中获得了两次相同的记录。
- 创建/更新方法被调用两次 - 当我发布任何页面时,每个记录都保存在数据库中。
- 删除(取消发布页面很好,只有一条记录被插入到数据库中,但是在取消发布任何页面后,下次发布该特定页面会失败)
我有以下用于处理页面的类代码以及为组件和二进制文件编写的相同代码:
我的存储包如下:
我的示例 cd_storage XML
hibernate - 获取无法从 Tridion 2011 中的 Hibernate 查询中找到命名参数
我的 DAO 类中有以下方法。
它给出以下错误:
这是 HQL 在我的日志中内部生成的查询:
我可以看到 PUBLICATION_ID 列存在于我的实体以及我的 SQL 表中。
请建议。
tridion - 使用 Tridion Deployer 扩展取消发布页面时,组件详细信息未记录在我的数据库中
我正在尝试在我的自定义存储扩展中添加未发布的组件条目。我们知道我们在 Tridion 中没有任何用于 ComponentUndeploy 的基类,因为我们有部署“ComponentDeploy”,所以我正在尝试使用 ComponentPresentationUndeploy 类来跟踪正在获取的组件,下面是我试图跟踪的示例代码.
知道为什么我的数据库中没有任何组件条目
编辑:从我完成的 PageUndeploy 实现中添加了示例代码:
tridion - 如何在不覆盖所有其他设置的情况下将子出版物或其他出版物的发布 dcp 设置到不同的位置
我正在尝试配置 cd_storage 并在设置动态组件表示时遇到问题,因为它们被孩子覆盖并从每个出版物发布到同一个文件夹。
我知道我们可以定义发布级别设置,但是一旦我们定义了它,它就会期望我们定义该发布标签内的所有内容。我们不想在发布标签中定义每件事 50 次。
任何人都可以提出相同的最佳做法。
这是用于 sdl tridion 2011 sp1
提前致谢...