Seems like this is a documentation issue. Should be fixed in the docs.


From: Nicolás [mailto:nico...@devels.es]
Sent: Sunday, September 20, 2015 11:46 AM
To: cas-user@lists.jasig.org
Subject: Re: [cas-user] Unable to configure ticketing via MySQL



Hi Jay,

The first dependency seems to be autoresolved because I have a 
spring-context-support-4.1.6.RELEASE.jar file in the lib directory. However, 
I could fix it by replacing the 
org.springframework.scheduling.quartz.SimpleTriggerBean class to 
org.springframework.scheduling.quartz.SimpleTriggerFactoryBean. It shouldn't 
be changed in the documentation, as it is incorrect now.

Fixing this I have a new exception:

org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'ticketRegistryCleaner' defined in ServletContext resource 
[/WEB-INF/spring-configuration/ticketRegistry.xml]: Could not resolve 
matching constructor (hint: specify index/type/name arguments for simple 
parameters to avoid type ambiguities)
    at 
org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:236)
    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1139)
    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1042)
    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
    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)

I tried adding the second dependency you mentioned, but it made no 
difference. This bean is exactly equal as the one defined by default in the 
ticketRegistry.xml file. Any hint why this exception is being thrown now?

Thanks.

Nicolás

El 20/09/15 a las 19:17, Jay escribió:

Seems you are missing a maven dependecy for the class 
org.springframework.scheduling.quartz.SimpleTriggerBean


<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-support</artifactId>
    <version>2.0.6</version>
</dependency>

or something like

<dependency>
             <groupId>org.quartz-scheduler</groupId>
             <artifactId>quartz</artifactId>
             <version>1.8.5</version>
         </dependency>

Search on google for that class maven depency... like the below link



https://www.google.co.uk/search?q=org.springframework.scheduling.quartz.SimpleTriggerBean+maven
 
<https://www.google.co.uk/search?q=org.springframework.scheduling.quartz.SimpleTriggerBean+maven&ie=utf-8&oe=utf-8&gws_rd=cr&ei=RPf-VZ2PL4qua8mujbAP>
 
&ie=utf-8&oe=utf-8&gws_rd=cr&ei=RPf-VZ2PL4qua8mujbAP

Cheers

Jay







On Sun, Sep 20, 2015 at 6:47 PM, Nicolás <nico...@devels.es 
<mailto: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> 
"http://www.w3.org/2001/XMLSchema-instance";
       xmlns:p= <http://www.springframework.org/schema/p> 
"http://www.springframework.org/schema/p";
       xmlns:c= <http://www.springframework.org/schema/c> 
"http://www.springframework.org/schema/c";
       xmlns:tx= <http://www.springframework.org/schema/tx> 
"http://www.springframework.org/schema/tx";
       xmlns:util= <http://www.springframework.org/schema/util> 
"http://www.springframework.org/schema/util";
       xmlns= <http://www.springframework.org/schema/beans> 
"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 <http://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 
<mailto:cas-user@lists.jasig.org>  as: india....@gmail.com 
<mailto:india....@gmail.com>
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 
<mailto:cas-user@lists.jasig.org>  as: nico...@devels.es 
<mailto:nico...@devels.es>
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 
<mailto:cas-user@lists.jasig.org>  as: mmoay...@unicon.net 
<mailto:mmoay...@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