【发布时间】:2012-06-16 08:52:36
【问题描述】:
我最近使用 Tridion 2011 SP1(带有修补程序 SP1)安装并配置了 Smarttarget 2011。
- 我能够成功启动 QServer 和 Loaders。
- 我的内容交付是一个 .NET Web 应用程序,它已按照 手册。
- 我最初尝试从 站点,稍后我将对其进行修改以使其启用 Smarttarget。
-
在发布页面时,我在部署期间收到错误消息。
这是我在部署日志中看到的部分错误。
2012-06-13 16:44:29,781 INFO 模块 - 未配置 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,null 在 com.tridion.util.ReflectionUtil.loadClassInstanceWithTypes(ReflectionUtil.java:74) [cd_core.jar:na] 在 com.tridion.deployer.ModuleFactory.createModule(ModuleFactory.java:109) ~[cd_deployer.jar:na] 在 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(未知来源)[na:1.6.0_11] 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知来源)[na:1.6.0_11] 在 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] 在 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] 在 com.tridion.deployer.queue.QueueLocationHandler$1.run(QueueLocationHandler.java:176) [cd_deployer.jar:na] 在 java.util.concurrent.Executors$RunnableAdapter.call(未知来源)[na:1.6.0_11] 在 java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [na:1.6.0_11] 在 java.util.concurrent.FutureTask.run(未知来源)[na:1.6.0_11] 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [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] 2012-06-13 16:44:29,781 错误处理器工厂-无法加载处理器 com.tridion.util.TridionReflectionException:目标类的构造函数抛出了异常,null,null 在 com.tridion.util.ReflectionUtil.loadClassInstanceWithTypes(ReflectionUtil.java:74) ~[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] 在 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] 在 com.tridion.deployer.queue.QueueLocationHandler$1.run(QueueLocationHandler.java:176) [cd_deployer.jar:na] 在 java.util.concurrent.Executors$RunnableAdapter.call(未知来源)[na:1.6.0_11] 在 java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [na:1.6.0_11] 在 java.util.concurrent.FutureTask.run(未知来源)[na:1.6.0_11] 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [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] 2012-06-13 16:44:29,781 错误 ProcessorWorker - 无法配置处理器 com.tridion.configuration.ConfigurationException: Unable to load Processor,目标类的构造函数抛出异常,null,null,目标类的构造函数抛出异常,null,null 在 com.tridion.deployer.ProcessorFactory.createProcessor(ProcessorFactory.java:133) ~[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] 在 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] 在 com.tridion.deployer.queue.QueueLocationHandler$1.run(QueueLocationHandler.java:176) [cd_deployer.jar:na] 在 java.util.concurrent.Executors$RunnableAdapter.call(未知来源)[na:1.6.0_11] 在 java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [na:1.6.0_11] 在 java.util.concurrent.FutureTask.run(未知来源)[na:1.6.0_11] 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_11] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源)[na:1.6.0_11] 在 java.lang.Thread.run(Unknown Source) [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>
【问题讨论】:
-
似乎无法加载 SmartTarget 标签包,或者根本无法加载 smarttarget_core.jar 文件。你是如何安装/配置这个的?
-
另外,您使用的是 SmartTarget 2011 Service Pack 1,对吗?这是与 Tridion 2011 SP1 兼容的版本。
-
@PeterKjaer:我通过可安装文件(.bat 文件)安装了 Smartarget(内容交付)
-
@NunoLinhares :使用部署器配置文件更新了原始查询。
-
我比较了我的配置和你的配置,差不多。我唯一能想到的确实是您缺少 jar 文件(我的机器中的 smartarget_core.jar、smarttarget_cartridge.jar 和 smarttarget_entity.jar)。我倾向于运行安装程序,但选择执行手动安装(复制文件),然后手动将这些文件与我现有的配置合并(是的,我并不总是信任安装程序)。
标签: tridion tridion-2011 tridion-content-delivery smarttarget