public class Httptest1 {
8
9 public static void main(String[] args) {
10
11 URL url = null
12 HttpURLConnection conn = null
13 OutputStream outStream = null
14 InputStream inStream = null
15
16 try {
17 url = new URL( " http://219.233.89.7:8090/cgi-bin/mailinterface " )
18 conn = (HttpURLConnection) url.openConnection()
19 conn.setDoOutput( true )
20 conn.setDoInput( true )
21
22 String sendXml = " <?xml version=\ " 1.0 \ " encoding=\ " UTF - 16 \ " ?><!DOCTYPE SigMailCommand SYSTEM \ " SigMail.dtd\ "> " // XML数据
23 sendXml += " <SigMailCommand Name=\ " checkuser\ " ><Param Name=\ " domainname\ " >test.com.cn</Param> "
24 sendXml += " <Param Name=\ " username\ " >admin</Param></SigMailCommand> "
25
26 outStream = conn.getOutputStream()
27
28 // 准备通过CONN对象写入XML数据
29 BufferedWriter bw = new BufferedWriter( new java.io.OutputStreamWriter(outStream,
30 " UTF-16 " ))
31 bw.write(sendXml)
32 bw.flush()
33 bw.close()
34
35 // DataOutputStream dataOutStream = new DataOutputStream(outStream)
36 // dataOutStream.writeChars(xml)
37 // dataOutStream.flush()
38 // dataOutStream.close()
39
40
41 // 准备通过CONN对象读取返回的XML数据
42
43 inStream = conn.getInputStream()
44 StringBuffer returnXml = new StringBuffer( "" )
45 BufferedReader rd = new BufferedReader( new InputStreamReader(inStream,
46 " UTF-16 " ))
47 for (String line = null (line = rd.readLine()) != null ) {
48 returnXml.append(line)
49 }
50 System.out.println(returnXml.toString())
51 rd.close()
52 } catch (IOException ex) {
53 ex.printStackTrace()
54 } finally {
55 try {
56 if (outStream != null )
57 outStream.close()
58 if (inStream != null )
59 inStream.close()
60 if (conn != null )
61 conn.disconnect()
62 } catch (IOException e) {
63 // TODO 自动生成 catch 块
64 e.printStackTrace()
65 }
66 }
67
68 }
69
70 }
方法一:1.web.xml中配置listener
<listener>
<listener-class>
cn.com.jxlife.shs.web.action.csinquiry.surrender.MyListener
</listener-class>
</listener>
2.创建listener
import java.util.Timer
import javax.servlet.ServletContextEvent
import javax.servlet.ServletContextListener
public class MyListener implements ServletContextListener {
private Timer timer = null
@Override
public void contextInitialized(ServletContextEvent sce) {
timer = new Timer(true)
//设置任务计划,启动和间隔时间
timer.schedule(new MyTask(), 0, 3*60*1000)
//3分钟
//timer.schedule(new MyTask(), 0, 3*60*1000)
//在1秒后执行此任务,每次间隔2秒
//timer.schedule(new MyTask(), 1000, 2000)
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
timer.cancel()
}
}
3.创建启动的类MyTask
import java.util.Date
import java.util.TimerTask
public class MyTask extends TimerTask {
@Override
public void run() {
System.out.println("call at " + (new Date()))
}
}
方法二:
spring 下实现定时工作的调度框架quartz
· 1。从http://quartz-scheduler.org/下载quartz的开源包
quartz-1.7.3.tar.gz
3.07M
· 2。从quartz-1.7.3.tar.gz 找到quartz-1.7.3.jar,放到项目的classpath下
(放到webroot/WEB-INF/lib)下
· 3。定义一个需要时间调度的程序
package com.machome.quartz
public class CustomJob1 {
public void onTimeWork() {
System.out.println("数据备份任务启动")
System.out.println("...")
System.out.println("数据备份任务完成")
}
}
· 4。剩余的工作就都在spring xml文件里完成了
<!-- 被调度的bean -->
<bean id="job1" class="com.machome.quartz.CustomJob1"></bean>
<!-- 定义任务对象 -->
<bean id="jobtask1"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 被调度的bean -->
<property name="targetObject">
<ref bean="job1" />
</property>
<!-- 被调度的bean中的被调度的方法 -->
<property name="targetMethod">
<value>onTimeWork</value>
</property>
</bean>
<!-- 定义触发对象 -->
<bean id="trigger1"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<!-- 任务对象 -->
<property name="jobDetail">
<ref bean="jobtask1" />
</property>
<!-- cron表达式 -->
<property name="cronExpression">
<value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value>
</property>
</bean>
<!-- 调度对象 -->
<!-- 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="scheduler" lazy-init="false"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!-- 触发对象 -->
<property name="triggers">
<list>
<ref bean="trigger1" />
</list>
</property>
</bean>
· 5。 将spring 项目部署到TOMCAT或JBOSS服务器上
deploy项目
重启TOMCAT server
· 6。看结果:
cron表达式参考:Quartz的cron表达式