1

我最近使用 Tridion 2011 SP1(带有修补程序 SP1)安装并配置了 Smarttarget 2011。

  1. 我能够成功启动 QServer 和 Loaders。
  2. 我的内容交付是按照手册配置的 .NET Web 应用程序。
  3. 我最初尝试从站点发布现有页面,稍后我将对其进行修改以使其启用 Smarttarget。
  4. 在发布页面时,我在部署期间收到错误消息。

    这是我在部署程序日志中看到的部分错误。

2012-06-13 16:44:29,781 信息模块 - 未配置 TransformProcessor,在部署模块 com.tridion.deployer.modules.SchemaDeploy 之前不会转换文件 2012-06-13 16:44:29,781 调试 TCDLEngine - TCDL:使用内置标签注册表 2012-06-13 16:44:29,781 调试 TCDLEngine - 加载 TCDL 标签包 com/tridion/smarttarget/tcdl/tagbundle.xml 2012-06-13 16:44:29,781 错误 ModuleFactory - 无法创建模块com.tridion.util.TridionReflectionException:目标类的构造函数抛出了异常,null,在com.tridion.util.ReflectionUtil.loadClassInstanceWithTypes(ReflectionUtil.java:74) [cd_core.jar:na] at com.tridion处为null .deployer.ModuleFactory.createModule(ModuleFactory.java:109) ~[cd_deployer.jar:na] at com.tridion.deployer.Processor.configure(Processor.java:81) [cd_deployer.jar:na] 在 com.tridion.deployer.Processor.(Processor.java:65) [cd_deployer.jar:na] 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [na:1.6.0_11] 在 sun.reflect.NativeConstructorAccessorImpl .newInstance(Unknown Source) [na:1.6.0_11] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) [na:1.6.0_11] at java.lang.reflect.Constructor.newInstance(Unknown Source) [na:1.6 .0_11] 在 com.tridion.util.ReflectionUtil.loadClassInstanceWithTypes(ReflectionUtil.java:63) [cd_core.jar:na] 在 com.tridion.util.ReflectionUtil.loadClassInstance(ReflectionUtil.java:106) [cd_core.jar:na ] 在 com.tridion.deployer.ProcessorFactory.createProcessor(ProcessorFactory.java:130) [cd_deployer.jar:na] 在 com.tridion.deployer.ProcessorFactory.createProcessors(ProcessorFactory.java:114) [cd_deployer.jar:na] 在 com.tridion.deployer.workers.ProcessorWorker.doWork(ProcessorWorker.java:61) [cd_deployer.jar:na] 在 com.tridion.deployer.phases.ProcessingPhase.execute(ProcessingPhase. java:73) [cd_deployer.jar:na] at com.tridion.deployer.phases.DeployPipelineExecutor.runMainExecutePhase(DeployPipelineExecutor.java:186) [cd_deployer.jar:na] at com.tridion.deployer.phases.DeployPipelineExecutor.doExecute( DeployPipelineExecutor.java:97) [cd_deployer.jar:na] 在 com.tridion.deployer.phases.DeployPipelineExecutor.execute(DeployPipelineExecutor.java:61) [cd_deployer.jar:na] 在 com.tridion.deployer.TransactionManager.handleDeployPackage( TransactionManager.java:80) [cd_deployer.jar:na] 在 com.tridion.deployer.queue.QueueLocationHandler$1.run(QueueLocationHandler.java:176) [cd_deployer.jar:na] 在 java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.6.0_11] 在 java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [na:1.6.0_11] 在 java .util.concurrent.FutureTask.run(Unknown Source) [na:1.6.0_11] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_11] at java.util.concurrent.ThreadPoolExecutor $Worker.run(Unknown Source) [na:1.6.0_11] at java.lang.Thread.run(Unknown Source) [na:1.6.0_11] 2012-06-13 16:44:29,781 错误 ProcessorFactory - 无法加载Processor com.tridion.util.TridionReflectionException: 目标类的构造函数抛出了异常,null,null at com.tridion.util.ReflectionUtil.loadClassInstanceWithTypes(ReflectionUtil.java:74) ~[cd_core.jar:na] at com .tridion.util.ReflectionUtil。loadClassInstance(ReflectionUtil.java:106) ~[cd_core.jar:na] at com.tridion.deployer.ProcessorFactory.createProcessor(ProcessorFactory.java:130) [cd_deployer.jar:na] at com.tridion.deployer.ProcessorFactory.createProcessors (ProcessorFactory.java:114) [cd_deployer.jar:na] 在 com.tridion.deployer.workers.ProcessorWorker.doWork(ProcessorWorker.java:61) [cd_deployer.jar:na] 在 com.tridion.deployer.phases.ProcessingPhase .execute(ProcessingPhase.java:73) [cd_deployer.jar:na] 在 com.tridion.deployer.phases.DeployPipelineExecutor.runMainExecutePhase(DeployPipelineExecutor.java:186) [cd_deployer.jar:na] 在 com.tridion.deployer.phases .DeployPipelineExecutor.doExecute(DeployPipelineExecutor.java:97) [cd_deployer.jar:na] at com.tridion.deployer.phases.DeployPipelineExecutor.execute(DeployPipelineExecutor.java:61) [cd_deployer.jar:na] 在 com.tridion.deployer.TransactionManager.handleDeployPackage(TransactionManager.java:80) [cd_deployer.jar:na] 在 com.tridion.deployer.queue.QueueLocationHandler$1.run(QueueLocationHandler.java :176) [cd_deployer.jar:na] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.6.0_11] at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [ na:1.6.0_11] 在 java.util.concurrent.FutureTask.run(Unknown Source) [na:1.6.0_11] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_11]在 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_11] at java.lang.Thread.run(Unknown Source) [na:1.6.0_11] 2012-06-13 16:44 :29,781 错误 ProcessorWorker - 无法配置处理器 com.tridion。configuration.ConfigurationException: Unable to load Processor,目标类的构造函数抛出异常,null,null,目标类的构造函数抛出异常,null,null at com.tridion.deployer.ProcessorFactory.createProcessor(ProcessorFactory .java:133) ~[cd_deployer.jar:na] at com.tridion.deployer.ProcessorFactory.createProcessors(ProcessorFactory.java:114) ~[cd_deployer.jar:na] at com.tridion.deployer.workers.ProcessorWorker.doWork (ProcessorWorker.java:61) ~[cd_deployer.jar:na] 在 com.tridion.deployer.phases.ProcessingPhase.execute(ProcessingPhase.java:73) [cd_deployer.jar:na] 在 com.tridion.deployer.phases。 DeployPipelineExecutor.runMainExecutePhase(DeployPipelineExecutor.java:186) [cd_deployer.jar:na] 在 com.tridion.deployer.phases.DeployPipelineExecutor。doExecute(DeployPipelineExecutor.java:97) [cd_deployer.jar:na] 在 com.tridion.deployer.phases.DeployPipelineExecutor.execute(DeployPipelineExecutor.java:61) [cd_deployer.jar:na] 在 com.tridion.deployer.TransactionManager。 handleDeployPackage(TransactionManager.java:80) [cd_deployer.jar:na] at com.tridion.deployer.queue.QueueLocationHandler$1.run(QueueLocationHandler.java:176) [cd_deployer.jar:na] at java.util.concurrent.Executors $RunnableAdapter.call(Unknown Source) [na:1.6.0_11] at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [na:1.6.0_11] at java.util.concurrent.FutureTask.run(Unknown来源)[na:1.6.0_11] 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(未知来源)[na:1.6.0_11] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源)[na :1.6。0_11] 在 java.lang.Thread.run(未知来源)[na:1.6.0_11]

更新了部署器配置。

<Processors> 
<!-- A Processor is triggered by the Deployer to process an incoming
           TransportPackage based on the 'Action' command in the
           ProcessorInstructions. The default Processor triggers modules
           sequentially as they are defined in a Processor section. The 'Class'
           attribute defines the Processor class that will be used for processing an action.
           'Phase' attribute is optional and it defines in which processing phase this processor is active. 'Phase'
           attribute can have following values: pre-processing, processing, post-processing, pre-transaction and post-transaction-->  
<!-- <Processor Action="Deploy" Class="com.tridion.deployer.Processor" Phase="post-transaction"> -->  
<Processor Action="Deploy" Class="com.tridion.deployer.Processor"> 
  <!-- A Module is triggered by a Processor to process incoming instructions.
                The 'Type' attribute needs to be unique within a Processor and serves
                as a symbolic identifier. The 'Class' attribute defines the
                implementation used for any type of Module. Replace or add modules to
                implement custom Deployer behavior. -->  
  <Module Type="SchemaDeploy" Class="com.tridion.deployer.modules.SchemaDeploy"/>  
  <Module Type="PageDeploy" Class="com.tridion.deployer.modules.PageDeploy"> 
    <!-- The transformer enables the TCDL Engine -->  
    <Transformer Class="com.tridion.deployer.TCDLTransformer"/> 
  </Module>  
  <Module Type="BinaryDeploy" Class="com.tridion.deployer.modules.BinaryDeploy"/>  
  <Module Type="ComponentDeploy" Class="com.tridion.deployer.modules.ComponentDeploy"/>  
  <Module Type="TemplateDeploy" Class="com.tridion.deployer.modules.TemplateDeploy"/>  
  <Module Type="PublicationDeploy" Class="com.tridion.deployer.modules.PublicationDeploy"/>  
  <!-- This module enables deployment of taxonomies -->  
  <Module Type="TaxonomyDeploy" Class="com.tridion.deployer.modules.TaxonomyDeploy"/>  
  <Module Type="ComponentPresentationDeploy" Class="com.tridion.deployer.modules.ComponentPresentationDeploy"> 
    <!-- The transformer enables the TCDL Engine -->  
    <Transformer Class="com.tridion.deployer.TCDLTransformer"/> 
  </Module>  
  <!-- This module enables deployment of structure groups -->  
  <Module Type="StructureGroupDeploy" Class="com.tridion.deployer.modules.StructureGroupDeploy"/> 
</Processor>  
<Processor Action="Undeploy" Class="com.tridion.deployer.Processor"> 
  <Module Type="PageUndeploy" Class="com.tridion.deployer.modules.PageUndeploy"/>  
  <Module Type="ComponentPresentationUndeploy" Class="com.tridion.deployer.modules.ComponentPresentationUndeploy"/>  
  <!-- This module enables the undeploy of taxonomies -->  
  <Module Type="TaxonomyUndeploy" Class="com.tridion.deployer.modules.TaxonomyUndeploy"/>  
  <!-- This module enables the undeploy of structure groups -->  
  <Module Type="StructureGroupUndeploy" Class="com.tridion.deployer.modules.StructureGroupUndeploy"/> 
</Processor>  
<Processor Action="Deploy" Class="com.tridion.deployer.Processor" Phase="post-transaction">
  <Module Type="SmartTargetDeploy" Class="com.tridion.smarttarget.deployer.FredhopperDeployerModule">
    <Transformer Class="com.tridion.deployer.TCDLTransformer"/>
  </Module>
</Processor>
<Processor Action="Undeploy" Class="com.tridion.deployer.Processor" Phase="post-transaction">
  <Module Type="SmartTargetUndeploy" Class="com.tridion.smarttarget.deployer.FredhopperUndeployModule"/>
</Processor>

4

1 回答 1

1

Bukubapi 解释说这是一个缺少 SmartTarget jar 的特定案例。以下是一些额外的安装细节和步骤,它们对我最近的一些 SmartTarget 安装有所帮助。

安装 SmartTarget SP1 for Content DeliveryInstall SDL SmartTarget 2011 SP2.bat提供 3 个选项:

  • Java 服务器页面 (JSP)
  • 活动服务器页面 (ASP.NET)
  • 复制文件(用于手册)

此外,它还允许您选择Webapp root pathDeployer config location和 32 与 64 位选项。

通过选择更新部署程序的选项,它更新了以下内容(此特定设置适用于带有 ASP.NET 的 Windows Server 2008 R2 上的 httpupload 站点)。

  • %TRIDION_HOME%\config\ 中的一些 .xml
  • %TRIDION_HOME%\lib\ 中的一些 jar
  • dll、jar、卸载文件和 .log 文件

我可能不应该选择部署程序更新,因为我使用的是 httpupload。

由于 Tridion 内容交付错误(除了代码)通常涉及 dll、jar 或配置,因此通过执行以下操作(对于 SmartTarget 或任何类型的 CD 安装)了解发生了什么变化是有帮助的。

  • 如果可以,请跳过安装程序(对 Nuno 的手动安装偏好 +1)
  • 备份您的原始站点或在副本上应用安装程序
  • 使用差异工具检查差异

dir/l/b > files.txtcmd提示符中是另一种快速而肮脏的方法来解决 CD jar、dll 或配置问题。

于 2012-08-04T06:55:42.717 回答