gpt4 book ai didi

java.util.timer定时器空指针异常

转载 作者:行者123 更新时间:2023-11-28 22:13:41 24 4
gpt4 key购买 nike

我使用的是 Apache Tomcate 7.0.39、Eclipse Java EE Juno、Java JRE 7 和 Java JDK 1.7.0_13。

我的计时器有问题。我有两个功能,第一个启动计时器并执行任务,另一个停止计时器。但是计时器永远不会停止,因为它为空。

我的 Java 代码:

public class TestXMLSQLTimerLocal
{
public Timer timer;

public TestXMLSQLTimerLocal()
{

}

public void start()
{
this.timer = new Timer();
TimerTask task = new TimerTask()
{
public void run()
{
//Some code
}
};

timer.scheduleAtFixedRate(task, 0, 60000);
}
public void stop() {
this.timer.cancel();
}
}

我的 JSP 页面:

<%@page import="com.accenture.api.TestXMLSQLTimerLocal" %>
<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%
String text = "Press the Start button to begin !";
String action = request.getParameter("action");
TestXMLSQLTimerLocal TM = new TestXMLSQLTimerLocal();
if ("Start".equals(action))
{
TM.start();
text = "The data are being transferred. Press the Stop button when you want to stop the transfer !";
}
if("Stop".equals(action))
{
TM.stop();
text = "The transfer is stopped. Press the Start button to begin the transfer again !";
}
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Transfer Module</title>
</head>
<body>
<form name="StartTM" action="#">
<input type="hidden" name="action" value="Start"/>
<input type="submit" value="Start"/>
</form>
<br />
<p><%=text%></p>
<br />
<form name="StopTM" action="#">
<input type="hidden" name="action" value="Stop"/>
<input type="submit" value="Stop"/>
</form>
</body>
</html>

start() 和 stop() 由简单 JSP 页面上的开始和停止按钮调用。

对我来说,问题是计时器仍然为空,因为没有考虑 Start() 方法中的修改。有人可以帮助我吗?如果您需要更多信息,请问我

最佳答案

在构造函数中启动计时器而不是 start 方法:

public class TestXMLSQLTimerLocal
{
public Timer timer;

public TestXMLSQLTimerLocal(){
this.timer = new Timer();
}

public void start()
{
TimerTask task = new TimerTask()
{
public void run()
{
//Some code
}
};

timer.scheduleAtFixedRate(task, 0, 60000);
}
public void stop() {
this.timer.cancel();
}
}

关于java.util.timer定时器空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15898205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com