For the HA set up, there are more attractive and easier to maintain options in 
CAS to consider other than RDBMS like Hazelcast Ticket Registry for example 
which is part of CAS core now: 

http://jasig.github.io/cas/development/installation/Hazelcast-Ticket-Registry.html

Best,
Dmitriy. 


Sent from my iPhone

> On Sep 20, 2015, at 13:47, Nicolás <nico...@devels.es> wrote:
> 
> 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 cas-user@lists.jasig.org as: 
> dkopyle...@unicon.net
> To unsubscribe, change settings or access archives, see 
> http://www.ja-sig.org/wiki/display/JSG/cas-user

-- 
You are currently subscribed to cas-user@lists.jasig.org as: 
arch...@mail-archive.com
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user

Reply via email to