2010-11-23 21 views
10

मैं जानना चाहता हूं कि मैं अपने काम में इंजेक्शन का उपयोग करके गुइस का उपयोग कैसे कर सकता हूं। जैसा कि मैं डिफ़ॉल्ट कन्स्ट्रक्टर पर @ इंजेक्ट का उपयोग नहीं कर सकता, क्या मैं इसे सीधे विशेषता के रूप में उपयोग कर सकता हूं (मुझे हमेशा PersonDAO के साथ एक NullPointerException मिला है)? मुझे पता है कि एक डीएओ के पास यहां कुछ भी नहीं है लेकिन यह सिर्फ परीक्षण के लिए है।मेरी क्वार्ट्ज नौकरी में इंजेक्शन

public class SimpleQuartzJob implements Job { 

    @Inject PersonDao Person; 

    private static Logger logger = Logger.getLogger(SimpleQuartzJob.class.getName()); 

    public SimpleQuartzJob() { 
    } 

    @Override 
    public void execute(JobExecutionContext context) throws JobExecutionException { 
    if (logger.isDebugEnabled()) logger.debug("In SimpleQuartzJob - executing its JOB at " 
     + new Date() + " by " + context.getTrigger().getName()); 

     // ... LOGIC ... 
    } 

} 

मेरी मॉड्यूल में मैं निम्नलिखित घोषणा की है:

bind(PersonDao.class).to(HibernatePersonDaoImpl.class); 

असल में मैं PersonDao यहाँ का उपयोग क्योंकि मैं जानता हूँ कि यह इंजेक्शन के साथ एक और वर्ग के भीतर काम करता है (लेकिन इंजेक्शन निर्माता स्तर पर किया जाता है क्या आप वहां मौजूद हैं)।

क्या कोई मुझे सलाह दे सकता है?

web.xml:

<servlet> 
    <servlet-name>QuartzInitializer</servlet-name> 
    <display-name>Quartz Initializer Servlet</display-name> 
    <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    <init-param> 
     <param-name>config-file</param-name> 
     <param-value>/quartz.properties</param-value> 
    </init-param> 
    <init-param> 
     <param-name>shutdown-on-unload</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    <init-param> 
     <param-name>start-scheduler-on-load</param-name> 
     <param-value>true</param-value> 
    </init-param> 
</servlet> 

quartz.properties:

org.quartz.plugin.jobInitializer.class=org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin 
org.quartz.plugin.jobInitializer.fileNames=quartz-config.xml 
org.quartz.plugin.jobInitializer.failOnFileNotFound = true 
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool 
org.quartz.threadPool.threadCount = 5 
org.quartz.threadPool.threadPriority = 5 

क्वार्ट्ज-config.xml:

यहाँ क्वार्ट्ज config बारे में अधिक जानकारी है

<?xml version='1.0' encoding='utf-8'?> 
<job-scheduling-data xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd" 
    version="1.8"> 

    <schedule> 
     <job> 
      <name>mail-job</name> 
      <group>MYJOB_GROUP</group> 

      <description>The job description</description> 
      <job-class>svc.data.server.quartz.SimpleQuartzJob</job-class> 
     </job> 

     <trigger> 
      <cron> 
       <name>my-trigger</name> 
       <group>MYTRIGGER_GROUP</group> 
       <job-name>mail-job</job-name> 

       <job-group>MYJOB_GROUP</job-group> 
       <cron-expression>10 * * * * ?</cron-expression> 

      </cron> 
     </trigger> 
    </schedule> 
</job-scheduling-data> 

उत्तर

संबंधित मुद्दे