3

I am trying to install Tridion 9.1 Deployer as 2x Endpoints and 3x Workers. Deployer endpoint is running fine I can browse the httpuplaod but when I'm install Worker, getting below error. Any suggestion on this issue.

2020-02-20 13:21:30,659 ERROR [main] LoggingFailureAnalysisReporter -

*************************** APPLICATION FAILED TO START


Description:

Field storageSelector in com.sdl.delivery.deployer.state.StepDataMapperFactory required a bean of type 'com.sdl.delivery.deployer.api.binarystorage.StorageSelector' that could not be found.

The injection point has the following annotations: - @org.springframework.beans.factory.annotation.Autowired(required=true)

Action:

Consider defining a bean of type 'com.sdl.delivery.deployer.api.binarystorage.StorageSelector' in your configuration.

2020-02-20 13:21:30,662 ERROR [main] LoggingFailureAnalysisReporter -

*************************** APPLICATION FAILED TO START


Description:

Field storageSelector in com.sdl.delivery.deployer.state.StepDataMapperFactory required a bean of type 'com.sdl.delivery.deployer.api.binarystorage.StorageSelector' that could not be found.

The injection point has the following annotations: - @org.springframework.beans.factory.annotation.Autowired(required=true)

Action:

Consider defining a bean of type 'com.sdl.delivery.deployer.api.binarystorage.StorageSelector' in your configuration.

2020-02-20 13:21:30,671 ERROR [main] ServiceContainer - Could not start ServiceContainer java.lang.reflect.InvocationTargetException: null at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at com.sdl.delivery.service.ServiceContainer.main(ServiceContainer.java:92) at com.sdl.delivery.service.WinServiceContainer.start(WinServiceContainer.java:24) at com.sdl.delivery.service.WinServiceContainer.main(WinServiceContainer.java:41) Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'stateMapperFactory': Unsatisfied dependency expressed through field 'mapperFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'stepDataMapperFactory': Unsatisfied dependency expressed through field 'storageSelector'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.sdl.delivery.deployer.api.binarystorage.StorageSelector' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:596) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1411) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:845) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:877) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:742) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:389) at org.springframework.boot.SpringApplication.run(SpringApplication.java:311) ... 7 common frames omitted

Cd_storage

<?xml version="1.0" encoding="UTF-8"?><Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="11.1" xsi:noNamespaceSchemaLocation="schemas/cd_storage_conf.xsd">
    <!--Optional:-->
    <!--
        Default Namespace Configuration
        The parameter to determine the default namespace
        'tcm' - Tridion Sites
    -->
    <Namespace default="${namespaceprefix:-tcm}"/>
    <Global>
        <!--Optional:-->
        <ObjectCache Enabled="${objectcacheenabled:-false}">
            <!--Optional:-->
            <Policy Class="com.tridion.cache.LRUPolicy" Type="LRU">
                <!--
                    The maximum size of memory used by the cache. The string must consist a number
                    followed by units: "k" or "kb" for kilobytes; "m" or "mb" for megabytes (case insensitive)
                -->
                <Param Name="MemSize" Value="${cachesize:-16mb}"/>
            </Policy>
            <!--Optional:-->
            <!-- The Features element specifies classes that add additional functionality to the cache. -->
            <Features>
                <Feature Class="com.tridion.cache.DependencyTracker" Type="DependencyTracker"/>
            </Features>

        </ObjectCache>

        <Storages>

            <Storage Class="com.tridion.storage.persistence.JPADAOFactory" Id="defaultdb" Type="persistence" dialect="MSSQL">
                <Pool CheckoutTimeout="120" IdleTimeout="120" MonitorInterval="60" Size="10" Type="jdbc"/>
                <DataSource Class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
                    <Property Name="serverName" Value="localhost"/>
                    <Property Name="portNumber" Value="1433"/>
                    <Property Name="databaseName" Value="Tridion_Broker"/>
                    <Property Name="user" Value="TridionBrokerUser"/>
                    <Property Name="password" Value="xxxxx"/>
                </DataSource>
            </Storage>

        </Storages>
        <!--
            This configures the taxonomy reference count for keywords,
            if CountEnabled is set to False the reference count for keywords will not get updated.
            The default setting if this configuration is not present - keyword counts are enabled.
        -->
        <Taxonomies CountEnabled="${taxonomiescountenabled:-true}"/>
        <!--
            Configures transaction storage settings:
                 how long before a transaction gets rolled back (default is 600000 ms) and
                 interval to monitor for outstanding transactions (default is 5000ms).
        -->
        <Transaction MonitorInterval="${transactionmonitorinterval:-5000}" Timeout="${transactiontimeout:-600000}"/>
    </Global>
    <ItemTypes cached="false" defaultStorageId="defaultdb">

    </ItemTypes>
    <ConfigRepository CacheEnabled="true" CacheExpirationDuration="600" ClientId="registration" ClientSecret="${registrationpassword:-encrypted:HzfQh9wYwAKShDxCm4DnnBnysAz9PtbDMFXMbPszSVY=}" ConnectionTimeout="10000" ServiceMonitorPollDuration="10" ServiceUri="${discoveryurl:-http://localhost:8082/discovery.svc}" TokenServiceUrl="${tokenurl:-http://localhost:8082/token.svc}"/>
</Configuration>

Deployer config

<?xml version="1.0" encoding="UTF-8"?>
<Deployer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="11.1" xsi:noNamespaceSchemaLocation="schemas/deployer-conf.xsd">
<Pipelines>
        <Pipeline Action="TridionBootstrap" Id="Tridion-Bootstrap" Verb="Content,Prepare,Commit,Rollback">
            <Steps>
                <Step Id="TridionUnzipStep"/>
            </Steps>
        </Pipeline>
        <Pipeline Action="Deploy,Undeploy" Id="Tridion-Wait" Verb="Wait">
            <Steps>
                <Step Id="TridionWaitStep"/>
            </Steps>
        </Pipeline>

        <Pipeline Action="Deploy,Undeploy" Id="Tridion-ContentData-Deploy" Verb="Process">
            <Steps>
                <Step Id="TridionContentDataStep"/>
            </Steps>
        </Pipeline>
        <Pipeline Action="Deploy,Undeploy" Id="Tridion-PreCommit-TX" Verb="PreCommit">
            <Steps>
                <Step Id="TridionPreCommitStep"/>
            </Steps>
        </Pipeline>
        <Pipeline Action="Deploy,Undeploy" Id="Tridion-Commit-TX" Verb="Commit">
            <Steps>
                <Step Id="TridionCommitStep">
                    <RetryPoint PipelineId="Tridion-PreCommit-TX" StepId="TridionPreCommitStep"/>
                </Step>
            </Steps>
        </Pipeline>
        <Pipeline Action="Deploy,Undeploy" Id="Tridion-Rollback-TX" Verb="Rollback">
            <Steps>
                <Step Id="TridionRollbackStep"/>
            </Steps>
        </Pipeline>
        <Pipeline Action="Deploy,Undeploy" Finalize="true" Id="Tridion-Cleanup" Verb="*">
            <Steps>
                <Step Id="TridionCleanupStep"/>
            </Steps>
        </Pipeline>
    </Pipelines>

    <BinaryStorage Id="RedisStorage" Adapter="RedisBlobStorage">
        <Property Name="Host" Value="localhost"/>
        <Property Name="Port" Value="6379"/>
        <Property Name="Password" Value="encrypted:HzfQh9wYwAKShDxCm4DnnBnysAz9PtbDMFXMbPszSVY="/>
        <Property Name="Timeout" Value="20000"/>
    </BinaryStorage>


    <State>
        <Storage Adapter="mssql" driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" >
            <Property Name="host" Value="localhost"/>
            <Property Name="port" Value="1433"/>
            <Property Name="database" Value="Tridion_State_Store"/>
            <Property Name="user" Value="TridionStateStore"/>
            <Property Name="password" Value="xxxx"/>
        </Storage>
    </State>

    <Queues>

        <Queue Default="true" Verbs="Content" Adapter="JMS" Id="ContentQueue">

             <Property Name="Workers" Value="11"/> 
        </Queue>
        <Queue Verbs="Commit,Rollback" Adapter="JMS" Id="CommitQueue">

            <Property Name="Workers" Value="11"/>
        </Queue>
        <Queue Verbs="Prepare" Adapter="JMS" Id="PrepareQueue">

             <Property Name="Workers" Value="11"/> 
        </Queue>

        <Adapter Id="JMS">
            <Property Name="JMSConnectionFactoryBuilderClass"
                      Value="com.sdl.delivery.spring.configuration.jms.ActiveMQConnectionFactoryBuilder" />
            <Property Name="JMSUri" Value="http://localhost:8161/" />

            <Property Name="Username" Value="admin"/>
            <Property Name="Password" Value="admin"/>
        </Adapter>


        <Workers>
            <!-- Optional configuration properties -->
            <!--  <Property Name="QueuePollingInterval" Value="2s"/> -->
           <!--   <Property Name="RetriesInterval" Value="100ms"/> -->
           <!--  <Property Name="MaxRetries" Value="11"/> -->
           <!--   <Property Name="Cleanup" Value="true"/> -->
        </Workers>
    </Queues>

</Deployer>
6
  • Did you installed the Java on the Deployer server, looking at your log looking for Java.
    – k951
    Feb 20, 2020 at 13:20
  • Yes, I am installing deployer endpoint and worker on same machine , and deployer endpoint is already running so i dont think JAVA would be the issue.
    – CAP_SDLWEB
    Feb 20, 2020 at 13:35
  • My guess would be that you're missing some jars. Double/triple check the /lib folder (and the subfolders) from your deployer-worker. Feb 20, 2020 at 19:14
  • I tried running this service directly from SDL installation media, not sure also, just in case anything is missing while copying the file to diff. location , but no luck.
    – CAP_SDLWEB
    Feb 21, 2020 at 8:40
  • Can somebody help me on this, or is it a known issue with Tridion sites 9.1 ?
    – CAP_SDLWEB
    Mar 9, 2020 at 9:38

1 Answer 1

1

Deployer-conf.xml is missing the Tridion-Process-Deploy and Undeploy steps. Please go through the below lines which may help you out.

<Pipelines>
    <Pipeline Id="Tridion-Bootstrap" Action="TridionBootstrap" Verb="Content,Prepare,Commit,Rollback">
        <Steps>
            <Step Id="TridionUnzipStep"/>
        </Steps>
    </Pipeline>
    <Pipeline Id="Tridion-Wait" Action="Deploy,Undeploy" Verb="Wait">
        <Steps>
            <Step Id="TridionWaitStep"/>
        </Steps>
    </Pipeline>
    <Pipeline Id="Tridion-Process-Deploy" Action="Deploy" Verb="Process">
        <Steps>
            <Step Id="SchemaDeploy" Factory="com.sdl.delivery.deployer.steps.TridionExecutableStepFactory">
                <Module Class="com.tridion.deployer.modules.SchemaDeploy" Type="SchemaDeploy"/>
            </Step>
            <Step Id="PageDeploy" Factory="com.sdl.delivery.deployer.steps.TridionExecutableStepFactory">
                <Module Class="com.tridion.deployer.modules.PageDeploy" Type="PageDeploy">
                    <Transformer Class="com.tridion.transformer.TCDLDefaultTransformer"/>
                </Module>
            </Step>
            <Step Id="BinaryDeploy" Factory="com.sdl.delivery.deployer.steps.TridionExecutableStepFactory">
                <Module Class="com.tridion.deployer.modules.BinaryDeploy" Type="BinaryDeploy"/>
            </Step>
            <Step Id="ComponentDeploy" Factory="com.sdl.delivery.deployer.steps.TridionExecutableStepFactory">
                <Module Class="com.tridion.deployer.modules.ComponentDeploy" Type="ComponentDeploy"/>
            </Step>
            <Step Id="TemplateDeploy" Factory="com.sdl.delivery.deployer.steps.TridionExecutableStepFactory">
                <Module Class="com.tridion.deployer.modules.TemplateDeploy" Type="TemplateDeploy"/>
            </Step>
            <Step Id="PublicationDeploy" Factory="com.sdl.delivery.deployer.steps.TridionExecutableStepFactory">
                <Module Class="com.tridion.deployer.modules.PublicationDeploy" Type="PublicationDeploy"/>
            </Step>
            <Step Id="TaxonomyDeploy" Factory="com.sdl.delivery.deployer.steps.TridionExecutableStepFactory">
                <Module Class="com.tridion.deployer.modules.TaxonomyDeploy" Type="TaxonomyDeploy"/>
            </Step>
            <Step Id="ComponentPresentationDeploy" Factory="com.sdl.delivery.deployer.steps.TridionExecutableStepFactory">
                <Module Class="com.tridion.deployer.modules.ComponentPresentationDeploy" Type="ComponentPresentationDeploy">
                    <Transformer Class="com.tridion.transformer.TCDLDefaultTransformer"/>
                </Module>
            </Step>
            <Step Id="StructureGroupDeploy" Factory="com.sdl.delivery.deployer.steps.TridionExecutableStepFactory">
                <Module Class="com.tridion.deployer.modules.StructureGroupDeploy" Type="StructureGroupDeploy"/>
            </Step>
        </Steps>
    </Pipeline>
    <Pipeline Id="Tridion-Process-Undeploy" Action="Undeploy" Verb="Process">
        <Steps>
            <Step Id="PageUndeploy" Factory="com.sdl.delivery.deployer.steps.TridionExecutableStepFactory">
                <Module Class="com.tridion.deployer.modules.PageUndeploy" Type="PageUndeploy"/>
            </Step>
            <Step Id="ComponentPresentationUndeploy" Factory="com.sdl.delivery.deployer.steps.TridionExecutableStepFactory">
                <Module Class="com.tridion.deployer.modules.ComponentPresentationUndeploy" Type="ComponentPresentationUndeploy"/>
            </Step>
            <Step Id="TaxonomyUndeploy" Factory="com.sdl.delivery.deployer.steps.TridionExecutableStepFactory">
                <Module Class="com.tridion.deployer.modules.TaxonomyUndeploy" Type="TaxonomyUndeploy"/>
            </Step>
            <Step Id="StructureGroupUndeploy" Factory="com.sdl.delivery.deployer.steps.TridionExecutableStepFactory">
                <Module Class="com.tridion.deployer.modules.StructureGroupUndeploy" Type="StructureGroupUndeploy"/>
            </Step>
        </Steps>
    </Pipeline>
    <Pipeline Id="Tridion-ContentData-Deploy" Action="Deploy,Undeploy" Verb="Process">
        <Steps>
            <Step Id="TridionContentDataStep"/>
        </Steps>
    </Pipeline>
    <Pipeline Id="Tridion-PreCommit-TX" Action="Deploy,Undeploy" Verb="PreCommit">
        <Steps>
            <Step Id="TridionPreCommitStep"/>
        </Steps>
    </Pipeline>
    <Pipeline Id="Tridion-Commit-TX" Action="Deploy,Undeploy" Verb="Commit">
        <Steps>
            <Step Id="TridionCommitStep">
                <RetryPoint PipelineId="Tridion-PreCommit-TX" StepId="TridionPreCommitStep"/>
            </Step>
        </Steps>
    </Pipeline>
    <Pipeline Id="Tridion-Rollback-TX" Action="Deploy,Undeploy" Verb="Rollback">
        <Steps>
            <Step Id="TridionRollbackStep"/>
        </Steps>
    </Pipeline>
    <Pipeline Finalize="true" Id="Tridion-Cleanup" Action="Deploy,Undeploy" Verb="*">
        <Steps>
            <Step Id="TridionCleanupStep"/>
        </Steps>
    </Pipeline>

</Pipelines>
1
  • No help :( . its same error after updating the config
    – CAP_SDLWEB
    Feb 20, 2020 at 15:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.