我一直在閱讀關於java/spring/hibernate的內容,並通過一個「虛擬」的例子,所以我告訴我的朋友推薦一些對我來說更難的東西,現在我被卡住了......這裏是最簡單的類,我可以想到每30秒執行一次Java類最簡單的方法是什麼?
package spring.com.practice;
public class Pitcher {
private String shout;
public String getShout() {
return shout;
}
public void setShout(String shout) {
this.shout = shout;
}
public void voice()
{
System.out.println(getShout());
}
}
什麼是從春天豆呼籲梅託德voice()
打印出來的東西是最簡單的方法,並做到這一點repeadatly每30秒可以說,這裏是我到目前爲止有:
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="jobSchedulerDetail" />
<property name="startDelay" value="0" />
<property name="repeatInterval" value="30" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="schedulerName" value="pitcherScheduler" />
<property name="triggers">
<list>
<ref bean="simpleTrigger" />
</list>
</property>
</bean>
<bean id="pitcher" class="spring.com.practice.Pitcher">
<property name="shout" value="I started executing..."></property>
</bean>
是的,我試圖在Jboss 5上運行這個,我正在用maven構建一個項目。
我得到了一些建議和我的應用程序上下文現在看起來像:
<?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:sched="http://www.springinaction.com/schema/sched"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springinaction.com/schema/sched
http://www.springinaction.com/schema/sched-1.0.xsd"
default-lazy-init="true">
<bean id="stuffDoer" class="spring.com.practice">
<property name="shout" value="I'm executing"/>
</bean>
<sched:timer-job
target-bean="stuffDoer"
target-method="voice"
interval="5000"
start-delay="1000"
repeat-count="10" />
</beans>
這裏是我的web.xml:
<web-app id="simple-webapp" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>spring app</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/conf/applicationContext.xml
</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>
現在我得到這個exeption:
12:35:51,657 ERROR [01-SNAPSHOT]] Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
我沒有意識到每30秒執行一次像你好世界這樣的事情會是這個複雜的
'@ Scheduled'註釋看起來非常好。 – BalusC 2010-03-19 12:32:27
@skaffman謝謝你的迴應,我現在就試試,事情是我想做一些更復雜的事情,所以我想從頭開始。 '我想創建兩個對象互相發送消息,一個讓其他人通過JBOSS 5響應JMS消息,我希望每30秒完成一次。「因此,首先要考慮的是每30秒執行一次任務然後開始.. – 2010-03-19 12:36:52
@skaffman偉大的答案,我試過了它的兩種方式和它的工作.. w00w tnx – 2010-03-19 13:10:47