Reputation: 537
I have recently installed and configured Smarttarget 2011 with Tridion 2011 SP1 (with hotfix SP1).
While publishing the page I receive an error during Deployment.
Here is the part of error I see in the deployer log.
2012-06-13 16:44:29,781 INFO Module - No TransformProcessor configured, will not transform files before deployment for module com.tridion.deployer.modules.SchemaDeploy 2012-06-13 16:44:29,781 DEBUG TCDLEngine - TCDL: Using built-in tag registry 2012-06-13 16:44:29,781 DEBUG TCDLEngine - Loading TCDL Tag Bundle com/tridion/smarttarget/tcdl/tagbundle.xml 2012-06-13 16:44:29,781 ERROR ModuleFactory - Unable to create module com.tridion.util.TridionReflectionException: The constructor of the target class has thrown an exception, null, null at com.tridion.util.ReflectionUtil.loadClassInstanceWithTypes(ReflectionUtil.java:74) [cd_core.jar:na] at com.tridion.deployer.ModuleFactory.createModule(ModuleFactory.java:109) ~[cd_deployer.jar:na] at com.tridion.deployer.Processor.configure(Processor.java:81) [cd_deployer.jar:na] at com.tridion.deployer.Processor.(Processor.java:65) [cd_deployer.jar:na] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [na:1.6.0_11] at 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] at com.tridion.util.ReflectionUtil.loadClassInstanceWithTypes(ReflectionUtil.java:63) [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] at com.tridion.deployer.workers.ProcessorWorker.doWork(ProcessorWorker.java:61) [cd_deployer.jar:na] at 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] at com.tridion.deployer.phases.DeployPipelineExecutor.execute(DeployPipelineExecutor.java:61) [cd_deployer.jar:na] at 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 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 ERROR ProcessorFactory - Unable to load Processor com.tridion.util.TridionReflectionException: The constructor of the target class has thrown an exception, 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] at com.tridion.deployer.workers.ProcessorWorker.doWork(ProcessorWorker.java:61) [cd_deployer.jar:na] at 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] at com.tridion.deployer.phases.DeployPipelineExecutor.execute(DeployPipelineExecutor.java:61) [cd_deployer.jar:na] at 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 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 ERROR ProcessorWorker - Unable to configure processors com.tridion.configuration.ConfigurationException: Unable to load Processor, The constructor of the target class has thrown an exception, null, null, The constructor of the target class has thrown an exception, 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] at 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] at com.tridion.deployer.phases.DeployPipelineExecutor.execute(DeployPipelineExecutor.java:61) [cd_deployer.jar:na] at 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 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]
Updated the deployer config.
<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>
Upvotes: 1
Views: 723
Reputation: 2887
Bukubapi explains this was a specific case of missing SmartTarget jars. Here are some additional installation details and steps that helped me with some recent SmartTarget installations.
Installing SmartTarget SP1 for Content Delivery with Install SDL SmartTarget 2011 SP2.bat
provides 3 options:
In addition, it lets you select Webapp root path
, the Deployer config location
, and 32 vs 64-bit options.
By choosing the option to update the deployer it updated the following (this specific setup was for an httpupload site on Windows Server 2008 R2 with ASP.NET).
I probably shouldn't have selected the deployer update since I was using httpupload.
Since Tridion Content Delivery errors (aside from code) typically involve dlls, jars, or configs, it helps to know what has changed by doing the following (for SmartTarget or any type of CD install).
dir/l/b > files.txt
in a cmd
prompt is another quick and dirty way to troubleshoot CD jars, dlls, or configs.
Upvotes: 1