Announcement Announcement Module
Collapse
No announcement yet.
Having problems with container/quartz circular reference Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Having problems with container/quartz circular reference

    Hi guys, I think there is a problem in the container's way of detecting circular references and/or in the quartz scheduler. Now, I'm not completely sure it's a real problem or it's my mistake, but it's looking that way.

    A few days ago I asked if there was anything that would make the container slow down so that it took 2 minutes to load. Apparantly the problem was with MethodInvokingJobDetailFactoryBean instances placed into Quartz triggers in my application context. Spring's container would try and create singleton instances for all my job details/triggers, as well as the target objects they depended on, over and over for about 1400 lines of logging output. Eventually, the container wisened up and found the references and everything was well, but it did take 30 or 40 seconds for the container figure it out. At the time, I didn't really understand why it was creating so many references of the same beans. I just knew it was a performance problem when starting the container in my tests and in the application server. Commenting out all the Quartz stuff made the container much faster.

    Now, to correct this problem I downloaded the latest version of Spring off sourceforge (since my version was a few months out of date) and used all the latest spring.jar and quartz.jar libraries in my application. Now, the container is detecting a circular reference problem and it isn't clear to me why since when I trace the beans, there are no circular references.

    The only thing I can conclude is that this is a bug, or I've always done something incorrect but older versions of the container did not catch it (hence the recursive bean creation using the old version of the container). Now that the old bug in the container is fixed, my application context doesn't work anymore. I'm not sure which is the case and that's why I would welcome your assistance in figuring it out.

    Here is my application context code (the relavent pieces, just guess the rest since I'm using similar to practices as you guys).

    The quartz stuff:
    Code:
    	<!-- Mark All Shipments As Purged every morning at 6 am -->
    	<bean id="purgeAllShipmentsDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    		<property name="targetObject"><ref bean="maintenanceService"/></property>
    		<property name="targetMethod"><value>purgeAllOldNonReleasedShipments</value></property>
    	</bean>
    
    	<bean id="purgeAllShipmentsTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    		<property name="jobDetail">
    			<ref local="purgeAllShipmentsDetail"/>
    		</property>
    		<property name="cronExpression">
    			<value>0 0 6 * * ?</value>
    		</property>
    	</bean>
    
    	<!-- Mark All Demo Shipments As Unread at every morning at 6&#58;05 am -->
    	<bean id="renewAllDemoAccountShipmentsDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    		<property name="targetObject"><ref bean="maintenanceService" /></property>
    		<property name="targetMethod"><value>renewAllDemoAccountShipments</value></property>
    	</bean>
    
    	<bean id="renewAllDemoAccountShipmentsTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    		<property name="jobDetail">
    			<ref local="renewAllDemoAccountShipmentsDetail"/>
    		</property>
    		<property name="cronExpression">
    			<value>0 5 6 * * ?</value>
    		</property>
    	</bean>
    
    	<!-- Delete All New Carriers that haven't verified themselves after 7 days -->
    	<!-- at morning at 6am -->
    	<bean id="deleteAllNewUnvalidatedCarriersDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    		<property name="targetObject"><ref bean="maintenanceService"/></property>
    		<property name="targetMethod"><value>deleteAllNewUnvalidatedCarriers</value></property>
    	</bean>
    
    	<bean id="deleteAllNewUnvalidatedCarriersTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    		<property name="jobDetail">
    			<ref local="deleteAllNewUnvalidatedCarriersDetail"/>
    		</property>
    		<property name="cronExpression">
    			<value>0 0 6 * * ?</value>
    		</property>
    	</bean>
    
    	<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    		<property name="triggers">
    			<list>
    				<!--<ref local="sendDownloadRequestTrigger"/>-->
    				<ref local="purgeAllShipmentsTrigger"/>
    				<ref local="renewAllDemoAccountShipmentsTrigger"/>
    				<ref local="deleteAllNewUnvalidatedCarriersTrigger"/>
    			</list>
    		</property>
    	</bean>
    The service bean that these quartz beans depend on.
    Code:
    <bean id="maintenanceService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    	    <property name="transactionManager"><ref local="transactionManager"/></property>
    	    <property name="target">
    			<bean class="com.borderconnect.service.MaintenanceServiceImpl" autowire="byType">
    				<property name="purgePeriod"><value>30</value></property>
    				<property name="demoUsername"><value>borderconnect</value></property>
    				<property name="daysToPurgeNewCarriers"><value>7</value></property>
    			</bean>
    		</property>
    	    <property name="transactionAttributes">
    	        <props>
    				<prop key="renew*">PROPAGATION_REQUIRED</prop>
    				<prop key="purgeAllOldNonReleasedShipments">PROPAGATION_REQUIRED</prop>
    				<prop key="deleteAllNewUnvalidatedCarriers">PROPAGATION_REQUIRED</prop>
    	        </props>
    	    </property>
    	</bean>
    The exception:
    Code:
    org.springframework.beans.factory.BeanCreationException&#58; Error creating bean with name 'purgeAllShipmentsDetail' defined in ServletContext resource &#91;/WEB-INF/cigContext.xml&#93;&#58; Can't resolve reference to bean 'maintenanceService' while setting property 'targetObject'; nested exception is org.springframework.beans.factory.FactoryBeanCircularReferenceException&#58; Error creating bean with name 'maintenanceService'&#58; FactoryBean returned null object&#58; not fully initialized due to circular bean reference
    org.springframework.beans.factory.FactoryBeanCircularReferenceException&#58; Error creating bean with name 'maintenanceService'&#58; FactoryBean returned null object&#58; not fully initialized due to circular bean reference
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForSharedInstance&#40;AbstractBeanFactory.java&#58;802&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;200&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference&#40;AbstractAutowireCapableBeanFactory.java&#58;945&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;879&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getType&#40;AbstractBeanFactory.java&#58;347&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.isBeanTypeMatch&#40;DefaultListableBeanFactory.java&#58;235&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;145&#41;
    	at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors&#40;BeanFactoryUtils.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findMatchingBeans&#40;DefaultListableBeanFactory.java&#58;338&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType&#40;AbstractAutowireCapableBeanFactory.java&#58;707&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;641&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveInnerBeanDefinition&#40;AbstractAutowireCapableBeanFactory.java&#58;905&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;870&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getType&#40;AbstractBeanFactory.java&#58;347&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.isBeanTypeMatch&#40;DefaultListableBeanFactory.java&#58;235&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;145&#41;
    	at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors&#40;BeanFactoryUtils.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findMatchingBeans&#40;DefaultListableBeanFactory.java&#58;338&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType&#40;AbstractAutowireCapableBeanFactory.java&#58;707&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;641&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveInnerBeanDefinition&#40;AbstractAutowireCapableBeanFactory.java&#58;905&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;870&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getType&#40;AbstractBeanFactory.java&#58;347&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.isBeanTypeMatch&#40;DefaultListableBeanFactory.java&#58;235&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;145&#41;
    	at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors&#40;BeanFactoryUtils.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findMatchingBeans&#40;DefaultListableBeanFactory.java&#58;338&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType&#40;AbstractAutowireCapableBeanFactory.java&#58;707&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;641&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveInnerBeanDefinition&#40;AbstractAutowireCapableBeanFactory.java&#58;905&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;870&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getType&#40;AbstractBeanFactory.java&#58;347&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.isBeanTypeMatch&#40;DefaultListableBeanFactory.java&#58;235&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;145&#41;
    	at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors&#40;BeanFactoryUtils.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findMatchingBeans&#40;DefaultListableBeanFactory.java&#58;338&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType&#40;AbstractAutowireCapableBeanFactory.java&#58;707&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;641&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveInnerBeanDefinition&#40;AbstractAutowireCapableBeanFactory.java&#58;905&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;870&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getType&#40;AbstractBeanFactory.java&#58;347&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.isBeanTypeMatch&#40;DefaultListableBeanFactory.java&#58;235&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;145&#41;
    	at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors&#40;BeanFactoryUtils.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findMatchingBeans&#40;DefaultListableBeanFactory.java&#58;338&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType&#40;AbstractAutowireCapableBeanFactory.java&#58;707&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;641&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveInnerBeanDefinition&#40;AbstractAutowireCapableBeanFactory.java&#58;905&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;870&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getType&#40;AbstractBeanFactory.java&#58;347&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.isBeanTypeMatch&#40;DefaultListableBeanFactory.java&#58;235&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;145&#41;
    	at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors&#40;BeanFactoryUtils.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findMatchingBeans&#40;DefaultListableBeanFactory.java&#58;338&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType&#40;AbstractAutowireCapableBeanFactory.java&#58;707&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;641&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveInnerBeanDefinition&#40;AbstractAutowireCapableBeanFactory.java&#58;905&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;870&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getType&#40;AbstractBeanFactory.java&#58;347&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.isBeanTypeMatch&#40;DefaultListableBeanFactory.java&#58;235&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;145&#41;
    	at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors&#40;BeanFactoryUtils.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findMatchingBeans&#40;DefaultListableBeanFactory.java&#58;338&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType&#40;AbstractAutowireCapableBeanFactory.java&#58;707&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;641&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveInnerBeanDefinition&#40;AbstractAutowireCapableBeanFactory.java&#58;905&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;870&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getType&#40;AbstractBeanFactory.java&#58;347&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.isBeanTypeMatch&#40;DefaultListableBeanFactory.java&#58;235&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;145&#41;
    	at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors&#40;BeanFactoryUtils.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findMatchingBeans&#40;DefaultListableBeanFactory.java&#58;338&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType&#40;AbstractAutowireCapableBeanFactory.java&#58;707&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;641&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveInnerBeanDefinition&#40;AbstractAutowireCapableBeanFactory.java&#58;905&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;870&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getType&#40;AbstractBeanFactory.java&#58;347&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.isBeanTypeMatch&#40;DefaultListableBeanFactory.java&#58;235&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;145&#41;
    	at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors&#40;BeanFactoryUtils.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findMatchingBeans&#40;DefaultListableBeanFactory.java&#58;338&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType&#40;AbstractAutowireCapableBeanFactory.java&#58;707&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;641&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveInnerBeanDefinition&#40;AbstractAutowireCapableBeanFactory.java&#58;905&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;870&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getType&#40;AbstractBeanFactory.java&#58;347&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.isBeanTypeMatch&#40;DefaultListableBeanFactory.java&#58;235&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;145&#41;
    	at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors&#40;BeanFactoryUtils.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findMatchingBeans&#40;DefaultListableBeanFactory.java&#58;338&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType&#40;AbstractAutowireCapableBeanFactory.java&#58;707&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;641&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveInnerBeanDefinition&#40;AbstractAutowireCapableBeanFactory.java&#58;905&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;870&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getType&#40;AbstractBeanFactory.java&#58;347&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.isBeanTypeMatch&#40;DefaultListableBeanFactory.java&#58;235&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType&#40;DefaultListableBeanFactory.java&#58;145&#41;
    	at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors&#40;BeanFactoryUtils.java&#58;163&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findMatchingBeans&#40;DefaultListableBeanFactory.java&#58;338&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType&#40;AbstractAutowireCapableBeanFactory.java&#58;707&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;641&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveInnerBeanDefinition&#40;AbstractAutowireCapableBeanFactory.java&#58;905&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary&#40;AbstractAutowireCapableBeanFactory.java&#58;870&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues&#40;AbstractAutowireCapableBeanFactory.java&#58;820&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean&#40;AbstractAutowireCapableBeanFactory.java&#58;648&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;288&#41;
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean&#40;AbstractAutowireCapableBeanFactory.java&#58;223&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;236&#41;
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;159&#41;
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons&#40;DefaultListableBeanFactory.java&#58;255&#41;
    	at org.springframework.context.support.AbstractApplicationContext.refresh&#40;AbstractApplicationContext.java&#58;317&#41;
    	at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh&#40;AbstractRefreshableWebApplicationContext.java&#58;131&#41;
    	at org.springframework.web.context.ContextLoader.createWebApplicationContext&#40;ContextLoader.java&#58;177&#41;
    	at org.springframework.web.context.ContextLoader.initWebApplicationContext&#40;ContextLoader.java&#58;105&#41;
    	at org.springframework.web.context.ContextLoaderListener.contextInitialized&#40;ContextLoaderListener.java&#58;48&#41;
    	at com.caucho.server.webapp.Application.start&#40;Application.java&#58;1528&#41;
    	at com.caucho.server.deploy.Entry.startImpl&#40;Entry.java&#58;469&#41;
    	at com.caucho.server.webapp.WebAppEntry.startImpl&#40;WebAppEntry.java&#58;94&#41;
    	at com.caucho.server.deploy.Entry.redeployIfModifiedImpl&#40;Entry.java&#58;428&#41;
    	at com.caucho.server.webapp.WebAppEntry.redeployIfModifiedImpl&#40;WebAppEntry.java&#58;94&#41;
    	at com.caucho.server.deploy.Entry.startAutomatic&#40;Entry.java&#58;380&#41;
    	at com.caucho.server.deploy.DeployContainer.start&#40;DeployContainer.java&#58;159&#41;
    	at com.caucho.server.webapp.ApplicationContainer.start&#40;ApplicationContainer.java&#58;562&#41;
    	at com.caucho.server.host.Host.start&#40;Host.java&#58;496&#41;
    	at com.caucho.server.deploy.Entry.startImpl&#40;Entry.java&#58;469&#41;
    	at com.caucho.server.host.HostEntry.startImpl&#40;HostEntry.java&#58;95&#41;
    	at com.caucho.server.deploy.Entry.redeployIfModifiedImpl&#40;Entry.java&#58;428&#41;
    	at com.caucho.server.host.HostEntry.redeployIfModifiedImpl&#40;HostEntry.java&#58;95&#41;
    	at com.caucho.server.deploy.Entry.startAutomatic&#40;Entry.java&#58;380&#41;
    	at com.caucho.server.deploy.DeployContainer.start&#40;DeployContainer.java&#58;159&#41;
    	at com.caucho.server.host.HostContainer.start&#40;HostContainer.java&#58;475&#41;
    	at com.caucho.server.resin.ServletServer.start&#40;ServletServer.java&#58;792&#41;
    	at com.caucho.server.resin.ResinServer.start&#40;ResinServer.java&#58;430&#41;
    	at com.caucho.server.resin.Resin.init&#40;Resin.java&#58;279&#41;
    	at com.caucho.server.resin.Resin.main&#40;Resin.java&#58;474&#41;
    	at sun.reflect.NativeMethodAccessorImpl.invoke0&#40;Native Method&#41;
    	at sun.reflect.NativeMethodAccessorImpl.invoke&#40;NativeMethodAccessorImpl.java&#58;39&#41;
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke&#40;DelegatingMethodAccessorImpl.java&#58;25&#41;
    	at java.lang.reflect.Method.invoke&#40;Method.java&#58;324&#41;
    	at com.intellij.rt.execution.application.AppMain.main&#40;AppMain.java&#58;78&#41;

  • #2
    I managed to fix this earlier today, probably an hour or so after I posted. Because I couldn't find out the real problem, I just took off auto-wiring completely and specified the dependancies myself. However, the dependancies do not cycle back. I'm very sure of it unless quartz is tied to Hibernate (obviously not). The reason I liked the auto-wiring is because it makes maintenance so much easier. I don't want to track which services use which daos, mailers and other infrastructure objects. I like to have a base service with all the setters to make sure each service has access to all of the, including new ones in the future. I guess I can't

    Comment

    Working...
    X