2016-12-27 5 views
0

У меня возникла проблема при запуске моих приложений в localhost. мое приложение - приложение на основе tomcat, которое создается с помощью Spring MVC MVC и использует @Autowired DataSource в качестве пути подключения к базе данных. кроме того, у меня есть функция приложений для работы с Java Quartz.Java Quartz + Spring WEB не может загрузить DataSource

DataJdbc1.class:

@Repository 
public class DataJdbc1 implements Data { 

    @Autowired 
    public DataSource dataSource1; 
    public JdbcTemplate jdbc1; 

    @Autowired 
    public DataSource dataSource2; 
    public JdbcTemplate jdbc2; 

    public void setDataSource1(DataSource dataSource1) { 
    this.dataSource1 = dataSource1; 
    } 

    public void setDataSource2(DataSource dataSource2) { 
    this.dataSource2 = dataSource2; 
    } 
} 

приложений context.xml:

<bean id="dataSource1" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName" value="java:comp/env/jdbc/xxx" /> 
</bean> 
<bean id="transactionManager1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
    <property name="dataSource" ref="dataSource1" /> 
</bean> 

<bean id="dataSource2" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName" value="java:comp/env/jdbc/xxx2" /> 
</bean> 
<bean id="transactionManager2" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
    <property name="dataSource" ref="dataSource2" /> 
</bean> 

CopyTableCustomerHandleJob.class

public class CopyTableCustomerHandleJob extends QuartzJobBean{ 

@Autowired 
QuartzServicesFactoryDao quartzServicesFactoryDao; 

@Override 
protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException { 
    // TODO Auto-generated method stub 
    try { 
     quartzServicesFactoryDao = new QuartzServicesFactoryDaoImpl(); 
     quartzServicesFactoryDao.getCopyTableCustomerHandle(); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

кварц-context.xml:

<!-- job --> 
<bean name="copyTableCustomerHandleJob" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> 
<property name="jobClass" value="crm.spring.main.quartz.CopyTableCustomerHandleJob"/> 
<property name="jobDataMap"> 
    <map> 
     <entry key="quartzServicesFactoryDao" value-ref="quartzServicesFactoryDao"/> 
    </map> 
</property> 
<property name="durability" value="true" /> 

<!-- trigger --> 
<bean id="copyTableCustomerHandleJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> 
<property name="jobDetail" ref="copyTableCustomerHandleJob"/> 
<property name="cronExpression" value="0 0/1 * * * ?"/> 
</bean> 

<!-- SchedulerFactoryBean --> 
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
<property name="jobDetails"> 
    <list> 
     <ref bean="copyTableCustomerHandleJob" /> 
    </list> 
</property> 
<property name="triggers"> 
<list> 
    <ref bean="copyTableCustomerHandleJobTrigger" /> 
</list> 
</property> 
</bean> 

потом, я решив построить что кварц приложения внутри Spring Web MVC с классом работы, Trigger класса, schedulefactory и создающего кварц-context.xml, к сожалению, у меня есть проблемы при запуске этого приложения кварцевое, я не может инициализировать свойство DataSource каждый раз, когда я запускаю приложение кварца. но странно, когда я пытаюсь вызвать метод приложения кварца с помощью Spring WebMVC RequestMapping DataSource Инициализируется успешно.

Кто-нибудь из участников stackoverflow когда-либо сталкивался с аналогичной проблемой с моей ?. какое решение я должен сделать, чтобы исправить мою проблему. Большое спасибо.

+0

вы должны использовать пружинный кварцевый модуль. – ScanQR

ответ

0

Quartz job создается Quartz, а не Spring. Таким образом, вы можете использовать SpringBeanJobFactory для автоматического автоматического задания кварца с использованием пружины.

Следующий URL-адрес полезен для вас. Пожалуйста, проверьте это.

https://stackoverflow.com/a/15211030/7119031

Смежные вопросы