Hi,

I'm running CAS 4.1.0 and trying to configure ticketing via MySQL, 
because we want to deploy this version for HA. For that, I've done the 
following steps:

1) ticketRegistry.xml file: Basically the same as 
http://jasig.github.io/cas/4.1.x/installation/JPA-Ticket-Registry.html 
says in Configuration + Connection pooling.

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
            xmlns:p="http://www.springframework.org/schema/p";
            xmlns:c="http://www.springframework.org/schema/c";
            xmlns:tx="http://www.springframework.org/schema/tx";
            xmlns:util="http://www.springframework.org/schema/util";
            xmlns="http://www.springframework.org/schema/beans";
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx.xsd
    http://www.springframework.org/schema/util
    http://www.springframework.org/schema/util/spring-util.xsd";>
         <description>
             Configuration for the default TicketRegistry which stores
    the tickets in-memory and cleans them out as specified
             intervals.
         </description>

         <bean id="ticketRegistry"
    class="org.jasig.cas.ticket.registry.JpaTicketRegistry" />

         <bean
    
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>

         <util:list id="packagesToScan">
             <value>org.jasig.cas.services</value>
             <value>org.jasig.cas.ticket</value>
             <value>org.jasig.cas.adaptors.jdbc</value>
         </util:list>

         <bean
    class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"
             id="jpaVendorAdapter"
             p:generateDdl="true"
             p:showSql="true" />

         <bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
             p:dataSource-ref="dataSource"
             p:jpaVendorAdapter-ref="jpaVendorAdapter"
             p:packagesToScan-ref="packagesToScan">
             <property name="jpaProperties">
               <props>
                 <prop key="hibernate.dialect">${database.dialect}</prop>
                 <prop key="hibernate.hbm2ddl.auto">create-drop</prop>
                 <prop
    key="hibernate.jdbc.batch_size">${database.batchSize}</prop>
               </props>
             </property>
         </bean>

         <bean id="transactionManager"
    class="org.springframework.orm.jpa.JpaTransactionManager"
                 p:entityManagerFactory-ref="entityManagerFactory" />

         <tx:annotation-driven transaction-manager="transactionManager" />

         <bean id="ticketRegistryCleaner"
    class="org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner"
               c:ticketRegistry-ref="ticketRegistry"
               c:lockingStrategy-ref="cleanerLock"
               c:logoutManager-ref="logoutManager" />

         <bean id="cleanerLock"
    class="org.jasig.cas.ticket.registry.support.JpaLockingStrategy"
                 p:uniqueId="${host.name}"
                 p:applicationId="cas-ticket-registry-cleaner" />

         <bean id="jobDetailTicketRegistryCleaner"
    
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
                 p:targetObject-ref="ticketRegistryCleaner"
                 p:targetMethod="clean" />

         <bean id="triggerJobDetailTicketRegistryCleaner"
    class="org.springframework.scheduling.quartz.SimpleTriggerBean"
                 p:jobDetail-ref="jobDetailTicketRegistryCleaner"
                 p:startDelay="20000"
                 p:repeatInterval="5000000" />

         <bean id="dataSource"
               class="com.mchange.v2.c3p0.ComboPooledDataSource"
               p:driverClass="${database.driverClass}"
               p:jdbcUrl="${database.url}"
               p:user="${database.user}"
               p:password="${database.password}"
               p:initialPoolSize="${database.pool.minSize}"
               p:minPoolSize="${database.pool.minSize}"
               p:maxPoolSize="${database.pool.maxSize}"
    p:maxIdleTimeExcessConnections="${database.pool.maxIdleTime}"
               p:checkoutTimeout="${database.pool.maxWait}"
               p:acquireIncrement="${database.pool.acquireIncrement}"
    p:acquireRetryAttempts="${database.pool.acquireRetryAttempts}"
               p:acquireRetryDelay="${database.pool.acquireRetryDelay}"
    p:idleConnectionTestPeriod="${database.pool.idleConnectionTestPeriod}"
    p:preferredTestQuery="${database.pool.connectionHealthQuery}"
               />
    </beans>

2) cas.properties:

    database.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
    database.driverClass=com.mysql.jdbc.Driver
    database.url=jdbc:mysql://localhost/cas?ssl=false
    database.user=cas
    database.password=mypassword

The rest, as defined in the PostgreSQL example on 
http://jasig.github.io/cas/4.1.x/installation/JPA-Ticket-Registry.html

3) pom.xml:

         <dependency>
              <groupId>org.jasig.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
              <version>${cas.version}</version>
         </dependency>
         <dependency>
             <groupId>org.hibernate</groupId>
             <artifactId>hibernate-core</artifactId>
             <version>${hibernate.core.version}</version>
             <scope>runtime</scope>
         </dependency>
         <dependency>
             <groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
             <version>${hibernate.core.version}</version>
             <scope>runtime</scope>
         </dependency>
         <dependency>
             <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
         </dependency>
         <dependency>
             <groupId>commons-dbcp</groupId>
             <artifactId>commons-dbcp</artifactId>
             <version>${commons.dbcp.version}</version>
             <scope>runtime</scope>
         </dependency>
         <dependency>
             <groupId>c3p0</groupId>
             <artifactId>c3p0</artifactId>
             <version>${c3p0.version}</version>
             <scope>runtime</scope>
         </dependency>

<hibernate.core.version>4.3.10.Final</hibernate.core.version>
<mysql.connector.version>5.1.6</mysql.connector.version>
         <commons.dbcp.version>1.4</commons.dbcp.version>
         <c3p0.version>0.9.1.2</c3p0.version>

The problem happens when deploying the app, in the logs I see the 
following exception. I tried even different versions of the dependencies 
and nothing seems to help. Seems to me that there's some unmet 
dependency but I can't find out which one is it. Any help or tip is 
really appreciated:

    sep 20, 2015 6:39:58 PM org.hibernate.tool.hbm2ddl.SchemaExport execute
    INFO: HHH000230: Schema export complete
    2015-09-20 18:40:01,264 WARN
    [org.springframework.web.context.support.XmlWebApplicationContext] -
    <Exception encountered during context initialization - cancelling
    refresh attempt
    org.springframework.beans.factory.BeanCreationException: Error
    creating bean with name 'ticketRegistry': Injection of persistence
    dependencies failed; nested exception is
    org.springframework.beans.factory.CannotLoadBeanClassException:
    Cannot find class
    [org.springframework.scheduling.quartz.SimpleTriggerBean] for bean
    with name 'triggerJobDetailTicketRegistryCleaner' defined in
    ServletContext resource
    [/WEB-INF/spring-configuration/ticketRegistry.xml]; nested exception
    is java.lang.ClassNotFoundException:
    org.springframework.scheduling.quartz.SimpleTriggerBean
         at
    
org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:357)
         at
    
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1210)
         at
    
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
         at
    
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
         at
    
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
         at
    
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
         at
    
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
         at
    
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
         at
    
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
         at
    
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
         at
    
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
         at
    
org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
         at
    
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
         at
    
org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
         at
    
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
         at
    
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
         at
    org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
         at
    
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
         at
    org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
         at
    org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
         at
    org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1073)
         at
    org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
         at
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
         at java.util.concurrent.FutureTask.run(FutureTask.java:262)
         at
    
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
         at
    
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
         at java.lang.Thread.run(Thread.java:745)
    Caused by:
    org.springframework.beans.factory.CannotLoadBeanClassException:
    Cannot find class
    [org.springframework.scheduling.quartz.SimpleTriggerBean] for bean
    with name 'triggerJobDetailTicketRegistryCleaner' defined in
    ServletContext resource
    [/WEB-INF/spring-configuration/ticketRegistry.xml]; nested exception
    is java.lang.ClassNotFoundException:
    org.springframework.scheduling.quartz.SimpleTriggerBean
         at
    
org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1328)
         at
    
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:622)
         at
    
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:591)
         at
    
org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1397)
         at
    
org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:434)
         at
    
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:412)
         at
    
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:398)
         at
    
org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:143)
         at
    
org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findDefaultEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:562)
         at
    
org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:531)
         at
    
org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.resolveEntityManager(PersistenceAnnotationBeanPostProcessor.java:697)
         at
    
org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.getResourceToInject(PersistenceAnnotationBeanPostProcessor.java:670)
         at
    
org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:169)
         at
    
org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
         at
    
org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:354)
         ... 26 more
    Caused by: java.lang.ClassNotFoundException:
    org.springframework.scheduling.quartz.SimpleTriggerBean
         at
    
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
         at
    
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
         at org.springframework.util.ClassUtils.forName(ClassUtils.java:249)
         at
    
org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:395)
         at
    
org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1349)
         at
    
org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1320)
         ... 40 more



-- 
You are currently subscribed to [email protected] as: 
[email protected]
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user

Reply via email to