I have an XML as follows:
<prop type="x-ConfirmationLevel">Approved</prop>
<prop type="x-Internal project number:SingleString">O-74205</prop>
<prop type="x-Product Line:MultiplePicklist">Services</prop>
<prop type="x-Product Line:MultiplePicklist">Raman</prop>
<prop type="x-Product Line:MultiplePicklist">Support</prop>
and I would like to get the element value of "prop type="x-Internal project number:SingleString"" when "prop type="x-Product Line:MultiplePicklist" == Raman".
My Xpath is the following:
//prop[#type = "x-Product Line:MultiplePicklist" and text() = "Raman"]
In my XML, the Xpath should return only O-74025.
Any idea? Thanks!
Like this :
Sample input:
<?xml version="1.0"?>
<root>
<x>
<prop type="x-ConfirmationLevel">Approved</prop>
<prop type="x-Internal project number:SingleString">O-74205</prop>
<prop type="x-Product Line:MultiplePicklist">Services</prop>
<prop type="x-Product Line:MultiplePicklist">Raman</prop>
<prop type="x-Product Line:MultiplePicklist">Support</prop>
</x>
<x>
<prop type="x-ConfirmationLevel">Approved</prop>
<prop type="x-Internal project number:SingleString">O-74205</prop>
<prop type="x-Product Line:MultiplePicklist">Services</prop>
<prop type="x-Product Line:MultiplePicklist">Foobar</prop>
<prop type="x-Product Line:MultiplePicklist">Support</prop>
</x>
</root>
Code:
xmllint --xpath '
//prop[#type="x-Product Line:MultiplePicklist" and \
text()="Raman"]/../prop[#type="x-Internal project number:SingleString"]/text()
' file.xml
Output:
O-74205
Just use parent::node() reference in your expression:
//prop[#type = "x-Product Line:MultiplePicklist" and text() = "Raman"]/parent::node()/prop[#type = "x-Internal project number:SingleString"]/text()
Related
Trying to connect two different datasources with the Atomikos transaction manager getting the below error
Caused by: java.lang.ClassCastException: com.atomikos.icatch.jta.hibernate3.AtomikosJTATransactionFactory cannot be cast to org.hibernate.resource.transaction.TransactionCoordinatorBuilder
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:Application.properties" />
</bean>
<bean id="oracleSessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="oraclesDataSource" />
<property name="mappingResources">
<list>
<value>persons.hbm.xml </value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
<!-- <prop key="hibernate.autocommit">true</prop>
<prop key="hibernate.connection.isolation">3</prop> -->
<prop key="hibernate.current_session_context_class">jta</prop>
<prop key="hibernate.transaction.factory_class">
com.atomikos.icatch.jta.hibernate3.AtomikosJTATransactionFactory
</prop>
<prop key="hibernate.transaction.manager_lookup_class">
com.atomikos.icatch.jta.hibernate3.TransactionManagerLookup
</prop>
<!-- <prop key="hibernate.current_session_context_class">thread</prop> -->
<prop key="hibernate.c3p0.min_size">5</prop>
<prop key="hibernate.c3p0.max_size">10</prop>
<prop key="hibernate.c3p0.timeout">300</prop>
</props>
</property>
</bean>
<bean id="mysqlSessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="mysqlDataSource" />
<property name="mappingResources">
<list>
<value>persons.hbm.xml </value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<!-- <prop key="hibernate.autocommit">ture</prop>
<prop key="hibernate.connection.isolation">3</prop> -->
<prop key="hibernate.current_session_context_class">jta</prop>
<prop key="hibernate.transaction.factory_class">
com.atomikos.icatch.jta.hibernate3.AtomikosJTATransactionFactory
</prop>
<prop key="hibernate.transaction.manager_lookup_class">
com.atomikos.icatch.jta.hibernate3.TransactionManagerLookup
</prop>
<!-- <prop key="hibernate.current_session_context_class">thread</prop> -->
<prop key="hibernate.c3p0.min_size">5</prop>
<prop key="hibernate.c3p0.max_size">10</prop>
<prop key="hibernate.c3p0.timeout">300</prop>
</props>
</property>
</bean>
<tx:annotation-driven proxy-target-class="true" />
<tx:jta-transaction-manager
transaction-manager="atomikosTransactionManager" />
<tx:annotation-driven transaction-manager="atomikosTransactionManager"
proxy-target-class="true" />
<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager"
init-method="init" destroy-method="close">
<property name="forceShutdown" value="false" />
</bean>
<bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.J2eeUserTransaction">
<property name="transactionTimeout" value="300" />
</bean>
<tx:annotation-driven />
<bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager"
depends-on="atomikosTransactionManager,atomikosUserTransaction">
<property name="transactionManager" ref="atomikosTransactionManager" />
<property name="userTransaction" ref="atomikosUserTransaction" />
<!-- <property name="allowCustomIsolationLevels" value="true" /> -->
</bean>
<bean id="mysqlDataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean"
init-method="init" destroy-method="close">
<property name="uniqueResourceName">
<value>mySqlDataSource</value>
</property>
<property name="xaDataSourceClassName">
<value>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</value>
</property>
<property name="xaProperties">
<props>
<prop key="databaseName">sys</prop>
<prop key="serverName">localhost</prop>
<prop key="port">3306</prop>
<prop key="user">root</prop>
<prop key="password">magesh123</prop>
<prop key="url">jdbc:mysql://localhost:3306/sys</prop>
</props>
</property>
<property name="minPoolSize">
<value>1</value>
</property>
</bean>
<bean id="oraclesDataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean"
init-method="init" destroy-method="close">
<property name="uniqueResourceName">
<value>OracleDataSource</value>
</property>
<property name="xaDataSourceClassName">
<value>oracle.jdbc.xa.client.OracleXADataSource</value>
</property>
<property name="xaProperties">
<props>
<prop key="databaseName">XE</prop>
<prop key="serverName">localhost</prop>
<!-- <prop key="port">1521</prop> -->
<prop key="user">system</prop>
<prop key="password">magesh123</prop>
<prop key="URL">jdbc:oracle:thin:#localhost:1521:XE</prop>
</props>
</property>
<property name="minPoolSize">
<value>1</value>
</property>
</bean>
<bean id="persons" class="com.bnym.aal.poc.spring_jta.Persons">
</bean>
<bean id="App" class="com.bnym.aal.poc.spring_jta.App">
<property name="springJtaDaoClass" ref="springJtaDaoClass" />
</bean>
<bean id="springJtaDaoClass" class="com.bnym.aal.poc.spring_jta.springJtaDaoClass">
<property name="oracleSessionFactory" ref="oracleSessionFactory" />
<property name="mysqlSessionFactory" ref="mysqlSessionFactory" />
<property name="atomikosTransactionManager" ref="transactionManager" />
<property name="persons" ref="persons" />
</bean>
Changed my hibernate transaction manager to below one and the Transaction manager worked
<prop key="hibernate.transaction.factory_class">
org.hibernate.transaction.CMTTransactionFactory
</prop>
Please refer to the below Git url for the POC on the Atomikos transaction manager for the out of box integration of the Spring - JTA
https://github.com/mageshsrinivasulu/spring-jta.git
Is there a way to provide another value for key if null? I want to use the source and dest db. But if dest db details are null then use source.
<bean id="dataSource" class="com.zaxxer.hikari.HikariConfig">
<property name="poolName" value="springHikariCP" />
<property name="dataSourceClassName" value="oracle.jdbc.pool.OracleDataSource" />
<property name="maximumPoolSize" value="${maximumPoolSize}" />
<property name="idleTimeout" value="${idleTimeout}" />
<property name="connectionTimeout" value="${connectionTimeout}" />
<property name="dataSourceProperties">
<props>
<prop key="url">${dest.db.url}</prop>
<prop key="user">${dest.db.user}</prop>
<prop key="password">${dest.db.password}</prop>
</props>
</property>
</bean>
What I tried:
<property name="dataSourceProperties">
<props>
<prop key="url">${dest.db.url?:${src.db.url}}</prop>
<prop key="user">${dest.db.user?:${src.db.user}}</prop>
<prop key="password">${dest.db.password?:${src.db.password}}</prop>
</props>
</property>
</bean>
Though the dest db details are not null, the data is being written into the source. Not sure why? Is there something wrong in the way I'm defining it?
You can use ternary operator to specify an if-else condition in spel. Take a look at this:
http://www.mkyong.com/spring3/spring-el-ternary-operator-if-then-else-example/
I am getting following Error, for my spring ioc container definition. It basically has a Spring Quartz Scheduler Bean Definition.
This is the final root cause of the error.
Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'scrService': org.springframework.beans.factory.FactoryBeanNotInitializedException: FactoryBean is not fully initialized yet
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:170) [spring-beans-3.2.13.RELEASE.jar:3.2.13.RELEASE]
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:126) [spring-beans-3.2.13.RELEASE.jar:3.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1467) [spring-beans-3.2.13.RELEASE.jar:3.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:246) [spring-beans-3.2.13.RELEASE.jar:3.2.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:191) [spring-beans-3.2.13.RELEASE.jar:3.2.13.RELEASE]
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328) [spring-beans-3.2.13.RELEASE.jar:3.2.13.RELEASE]
... 114 more
Here is ApplicationContext-beans.xml configuration
<bean id="scheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
destroy-method="destroy">
<property name="schedulerName">
<value>${org.quartz.scheduler.instanceName}</value>
</property>
<property name="autoStartup" value="true" />
<property name="startupDelay" value="10" />
<!-- To prevent picking up jobs from the database, please remove the line below -->
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="transactionManager"/>
<property name="taskExecutor" ref="senderTaskExecutor" />
<property name="waitForJobsToCompleteOnShutdown" value="true"></property>
<property name="quartzProperties">
<props>
<prop key="org.quartz.scheduler.instanceId">
${org.quartz.scheduler.instanceId}
</prop>
<!-- add key="org.quartz.jobStore.class" with value "org.quartz.simpl.RAMJobStore" for an in memory scheduler -->
<!-- Remove the 3 lines below for an in memory scheduler -->
<prop key="org.quartz.jobStore.driverDelegateClass">
${org.quartz.jobStore.driverDelegateClass}
</prop>
<prop key="org.quartz.jobStore.isClustered">
${org.quartz.jobStore.isClustered}
</prop>
<prop
key="org.quartz.jobStore.clusterCheckinInterval">
${org.quartz.jobStore.clusterCheckinInterval}
</prop>
<prop key="org.quartz.jobStore.useProperties">
${org.quartz.jobStore.useProperties}
</prop>
</props>
</property>
<property name="schedulerContextAsMap">
<map>
<!--<entry key="scrService">
<ref bean="scrService" />
</entry>-->
<entry key="numberLevelService">
<ref bean="numberLevelService" />
</entry>
<!--
...
-->
</map>
</property>
</bean>
<!--
...
-->
<bean id="scrService" parent="baseServiceTransactionProxy">
<property name="target" ref="scrServiceTarget"></property>
</bean> <!--abstract does not have Impl associated for scrServiceTarget or some problem-->
<bean id="numberLevelService" class="com.ding.dong.NumberLevelControllerImpl" factory-method="getInstance" lazy-init="true">
<constructor-arg ref="dataSource"></constructor-arg>
</bean>
<bean id="scrServiceTarget"
class="com.ding.dong.scrServiceImpl">
<property name="pageSizeFactor">
<value>${service.sender.pageSizeFactor}</value>
</property>
<property name="tpsFactor">
<value>${service.sender.tpsFactor}</value>
</property>
<property name="scrDao" ref="scrDao"></property>
<property name="scrRuntimeDao" ref="scrRuntimeDao"></property>
<property name="scrReportDao" ref="scrReportDao"></property>
<property name="scrTemplateDao"
ref="scrTemplateDao">
</property>
<property name="schedulerService" ref="schedulerService"></property>
<property name="shortCodeManagerService"
ref="shortCodeManagerService">
</property>
<property name="userRoleService" ref="userRoleService"></property>
<!-- To prevent connecting to JMS, please remove the line below -->
<property name="messageSenderService"
ref="messageSenderService">
</property>
</bean>
<bean id="baseServiceTransactionProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="scheduleSCR">
PROPAGATION_REQUIRED,-SCRServiceRuntimeException
</prop>
<prop key="removeScheduledSCR">
PROPAGATION_REQUIRED,-SCRServiceRuntimeException
</prop>
<prop key="extendInProgressSCR">
PROPAGATION_REQUIRED,-SCRServiceRuntimeException
</prop>
<prop key="stopInProgressSCR">
PROPAGATION_REQUIRED,-SCRServiceRuntimeException
</prop>
<prop key="retrieveSCRForExecution">
PROPAGATION_REQUIRED,-SCRServiceRuntimeException
</prop>
<prop key="updateSCRState">
PROPAGATION_REQUIRED,-SCRServiceRuntimeException
</prop>
<prop key="process*">
PROPAGATION_REQUIRED,-SCRServiceRuntimeException
</prop>
<prop key="updateMessageLogForContestWinners">
PROPAGATION_REQUIRED,-SCRServiceRuntimeException
</prop>
<prop key="retrieveSCR">
PROPAGATION_REQUIRED,readOnly
</prop>
<prop key="retrieveTemplate">
PROPAGATION_REQUIRED,readOnly
</prop>
<prop key="getScheduledSCRsMessageCount">
PROPAGATION_REQUIRED,readOnly
</prop>
<prop key="isUserQuotaExceeded">
PROPAGATION_REQUIRED,readOnly
</prop>
<prop key="retrieveActiveSCR*">
PROPAGATION_REQUIRED,readOnly
</prop>
<prop key="retrieveSCRInfo">
PROPAGATION_REQUIRED,readOnly
</prop>
<prop key="scheduleTask">
PROPAGATION_REQUIRED,-SchedulerServiceRuntimeException
</prop>
<prop key="*ScheduledTask">
PROPAGATION_REQUIRED,-SchedulerServiceRuntimeException
</prop>
<prop key="updateTaskSchedule">
PROPAGATION_REQUIRED,-SchedulerServiceRuntimeException
</prop>
</props>
</property>
<property name="preInterceptors">
<ref bean="performanceInterceptor" />
</property>
</bean>
For now I had commented the following Quartz Scheduler Entry, So it works fine...
<!--<entry key="scrService">
<ref bean="scrService" />
</entry>-->
As per my interpretation of trace-log, scrService has abstract implementation...
Please advise about this situation... Thanks for your suggestions....
Please find my codes below
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
And my applicationContext.xml is here
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref
bean="sessionFactory" />
</property>
</bean>
<!-- Hibernate SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="mappingResources">
<list>
<value>
/com/qantas/cardselector/model/config/TcerConfigItem.hbm.xml
</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.session_factory_name">
HibernateSessionFactory
</prop>
<prop
key="hibernate.transaction.manager_lookup_class">
org.hibernate.transaction.WeblogicTransactionManagerLookup
</prop>
<prop key="hibernate.transaction.factory_class">
org.hibernate.transaction.JTATransactionFactory
</prop>
<prop key="hibernate.current_session_context_class">
jta
</prop>
<prop key="hibernate.connection.datasource">
salesDataSource
</prop>
<prop key="hibernate.connection.release_mode">
auto
</prop>
<prop key="hibernate.dialect">
org.hibernate.dialect.OracleDialect
</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.use_outer_join">true</prop>
<prop key="hibernate.query.factory_class">
org.hibernate.hql.classic.ClassicQueryTranslatorFactory
</prop>
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.query.substitutions">
toLowerCase=lower,toUpperCase=upper,
today=TRUNC(sysdate),now=sysdate,getDate=TRUNC
</prop>
<prop key="hibernate.generate_statistics">true</prop>
</props>
</property>
</bean>
<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<bean id="InitialLoad" name="/InitialLoadAction"
class="com.qantas.cardselector.action.cardslist.CardsListAction">
<property name="cardManagementService"
ref="cardManagementService" />
</bean>
<bean id="CardsList" name="/cardsList"
class="com.qantas.cardselector.action.cardslist.CardsListAction">
<property name="cardManagementService"
ref="cardManagementService" />
</bean>
<bean id="transactionProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean id="cardManagementService" parent="transactionProxy">
<property name="target">
<bean class="com.qantas.cardselector.service.impl.CardManagementServiceImpl">
<property name="cardManagementDAO" ref="cardManagementDAO" />
</bean>
</property>
</bean>
<bean id="cardManagementDAO" class="com.qantas.cardselector.dao.impl.CardManagementDAOimpl">
<property name="hibernateTemplate" ref="hibernateTemplate" />
</bean>
</beans>
and my action class is here
package com.qantas.cardselector.action.cardslist;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.qantas.cardselector.form.CardsListForm;
import com.qantas.cardselector.service.CardManagementService;
import com.qantas.cardselector.vo.SearchFilterVO;
public class CardsListAction extends Action {
public CardManagementService cardManagementService;
#Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
try {
System.out.println("action started");
SearchFilterVO searchFilterVO =null;
if(getCardManagementService()!=null)
{
String returnvalue = getCardManagementService().retrieveParams(searchFilterVO);
System.out.println("returnvalue"+returnvalue);
}
} catch (Exception e) {
System.out.println("Error:" + e.getMessage());
e.printStackTrace();
}
return mapping.findForward("success");
}
public CardManagementService getCardManagementService() {
return cardManagementService;
}
public void setCardManagementService(CardManagementService cardManagementService) {
this.cardManagementService = cardManagementService;
}
}
this action class always throwing null pointer exceptions while calling service object as it shown in the code... please Can any one help...
Guys I have found answer for my question below,
have just added the piece of code in struts-config.xml
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="csntextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
</plug-in>
And added an empty action-servlet.xml file
Velocity Engine is being used in my project for sending mails on user action and on job trigger.
While the mails that are sent on user action are perfectly fine, The mails being sent by jobs are sometimes received with empty content. This is very random and i cannot seem to connect it with any cause. There are no Error logs when this happens. (I did get a Velocity could not be initialized error once, before adding the NullLogChute property. I was advised that this would solve the exception, but all it did was to stop the exception from coming up in the logs. mails still have empty content) Please help!
Earlier exception:
ERROR 2012-07-29 05:00:00,219 com.myProject.util.VelocityUtil - Velocity could not be initialized!
java.lang.RuntimeException: Velocity could not be initialized!
..
..
Caused by: org.apache.velocity.exception.VelocityException: Failed to initialize an instance of org.apache.velocity.runtime.log.AvalonLogChute with the current runtime configuration.
I am setting the velocity config properties in my spring servlet xml :
<bean id="velocityUtil" class="com.myProject.util.VelocityUtil" >
<property name="velocityConfiguration">
<props>
<prop key="resource.loader">class</prop>
<prop key="class.resource.loader.class">org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader</prop>
<prop key="runtime.log.logsystem.class">org.apache.velocity.runtime.log.NullLogChute</prop>
</props>
</property>
Quartz properties set in spring servlet:
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="applicationContextSchedulerContextKey"><value>applicationContext</value></property>
<property name="quartzProperties">
<props>
<prop key="org.quartz.scheduler.instanceName">Quartz</prop>
<prop key="org.quartz.scheduler.instanceId">AUTO</prop>
<prop key="org.quartz.scheduler.rmi.export">false</prop>
<prop key="org.quartz.scheduler.rmi.proxy">false</prop>
<prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
<prop key="org.quartz.threadPool.threadCount">5</prop>
<prop key="org.quartz.threadPool.threadPriority">1</prop>
<prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
<prop key="org.quartz.jobStore.tablePrefix">EES.QRTZ_</prop>
<prop key="org.quartz.jobStore.isClustered">true</prop>
<prop key="org.quartz.jobStore.misfireThreshold">60000</prop>
<prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.MSSQLDelegate</prop>
</props>
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="triggers">
<list>
<ref bean="Mod1CronTrigger" />
<ref bean="Mod2CronTrigger" />
<ref bean="Mod3CronTrigger" />
<ref bean="Mod4CronTrigger" />
<ref bean="Mod5CronTrigger" />
<ref bean="Mod6CronTrigger" />
</list>
</property>
</bean>
Each of the triggers in the <list> define the jobDetail and CronExpression. for example,
<bean id="Mod1CronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="Mod1Job"/>
<property name="cronExpression" value="0 30 3 1/1 * ? *"/>
</bean>
and
<bean name="Mod1Job" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="com.myProject.jobs.Mod1Job" />
<property name="name" value="Mod1Job" />
</bean>