有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法使用控制器外部的DAO查询数据库

我无法通过名为MyTask.java的java类查询我的数据库。我在控制器中使用相同的语法(在控制器中可以正常工作)

/mvc/utility/MyTask。爪哇

package edu.example.peerreview.mvc.utility;
import edu.example.peerreview.domain.QaCase;
import edu.example.peerreview.mvc.BaseController;

import java.util.Date;
import java.util.List;

public class FollowUpTask extends BaseController {
    public void run() {

        System.out.println("testing");
        List<QaCase> qaCases = qaCaseDAO.findAll();
        System.out.println(qaCases);
    }
}

基站控制器

package edu.example.peerreview.mvc;

import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;

import javax.inject.Inject;

public class BaseController {

    protected QaCaseDAO qaCaseDAO;

    @Inject public final void setQaCaseDAO(QaCaseDAO qaCaseDAO) {
        this.qaCaseDAO = qaCaseDAO;
    }
}

Stacktrace

14:26:03.748 [pool-1-thread-1] ERROR org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
java.lang.NullPointerException: null
    at edu.example.peerreview.mvc.utility.FollowUpTask.run(FollowUpTask.java:16) ~[FollowUpTask.class:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_11]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_11]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_11]
    at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_11]
    at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:64) ~[spring-context-3.1.0.RC1.jar:3.1.0.RC1]
    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53) ~[spring-context-3.1.0.RC1.jar:3.1.0.RC1]
    at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81) [spring-context-3.1.0.RC1.jar:3.1.0.RC1]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_11]
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [na:1.7.0_11]
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) [na:1.7.0_11]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_11]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) [na:1.7.0_11]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [na:1.7.0_11]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [na:1.7.0_11]
    at java.lang.Thread.run(Thread.java:722) [na:1.7.0_11]

DAO在控制器之外的行为是否不同

其他信息

applicationContext任务调度器。xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:task="http://www.springframework.org/schema/task"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/task
           http://www.springframework.org/schema/task/spring-task.xsd">

<bean id="runScheduler" class="edu.example.peerreview.mvc.utility.FollowUpTask" />
    <task:scheduled-tasks>
        <task:scheduled ref="runScheduler" method="run" cron="0 37 14 ? * *" />
    </task:scheduled-tasks>
</beans>

共 (0) 个答案