- 浏览: 96395 次
文章分类
最新评论
-
jXee:
lgs0626 写道求源码,兄弟给共享下吧 "jee ...
jee6 学习笔记 4 - CRUD 2: View Details, Primefaces row selection -
lgs0626:
求源码,兄弟给共享下吧
jee6 学习笔记 4 - CRUD 2: View Details, Primefaces row selection
This tests the ejb3.1 annotation @Schedule.
The idea is to print the server time regularly, in a scheduled task method.
here's the screen shot of the server log:
小结:
1. @Schedule can apply to stateless session beans and message driven beans. but not stateful session beans.
2. @Schedule creates so called "automatic" timers to schedule tasks.
3. if you wanna make sure that the ejb is fully initialized before servicing, you can use the annotation @Startup
4. this example uses a singleton ejb to schedule the task. otherwise you end up with the scheduled method called by multiple times at the timer expires.
5. A timeout callback method can have public, private, protected, or package level access. The method must not be declared as final or static, and must not throw application exceptions.
6. Schedule-based timer times are evaluated in the context of the default time zone associated with the container in which the application is executing. A schedule-based timer may optionally override this default and associate itself with a specific time zone.
7. attribute "persistent" defaults to "true", meaning the timer/the scheduled task/method execution would survive server restart.
8. one thing to mention is that one might need to remove the "tmp/work/data" folders from JBoss6 server configuration, after a redeployment. otherwise, it won't work as expected - the singleton ejb looks like have multiple instances.
The idea is to print the server time regularly, in a scheduled task method.
package com.jxee.ejb.test.singleton; import java.util.Date; import javax.annotation.PostConstruct; import javax.ejb.Lock; import javax.ejb.LockType; import javax.ejb.Schedule; import javax.ejb.Singleton; import javax.ejb.Startup; import org.apache.log4j.Logger; /** * Test jee 6 annotation @Schedule - automatic timers. * <b>it's said that this annotation works with any EJBs except for * Stateful session beans.</b> * <br/> * <br/> * From the JEE6 API doc: * <br/><br/> * @Schedule schedules a timer for automatic creation with a timeout schedule * based on a cron-like time expression. The annotated method is * used as the timeout callback method. * </li> * <li> * A timeout callback method can have public, private, protected, * or package level access. The method must not be declared as final * or static, and must not throw application exceptions.<br/> * </li> * <li> * Schedule-based timer times are evaluated in the context of the * default time zone associated with the container in which the * application is executing. A schedule-based timer may optionally * override this default and associate itself with a specific time zone. * If the schedule-based timer is associated with a specific time zone, * all its times are evaluated in the context of that time zone, * regardless of the default time zone in which the container is executing. * </li> */ //@Startup // eager initialization during the application startup sequence @Singleton // a singleton scheduler, rather than a pool of schedulers... public class ScheduleEJB { private static final Logger log = Logger.getLogger(ScheduleEJB.class); private String timeStr; private Integer counter = 0; @PostConstruct public void init() { log.debug(">>> inited: " + this.printInstance()); } /** * scheduled to execute on Thursday at every 20th second for every 3 minutes */ @Schedule(dayOfWeek="Thu", hour="*", minute="*/3", second="20", persistent=true) public void printTime() { doScheduledTask(); } @Lock(LockType.WRITE) private void doScheduledTask() { ++counter; timeStr = "scheduled ["+ counter + "]" + ", timeStr(sec)=" + (new Date().getTime())/1000; log.debug(this.timeStr); } @Lock(LockType.READ) public String getTimeStr() { return timeStr; } public String printInstance() { return this.toString(); } }
here's the screen shot of the server log:
小结:
1. @Schedule can apply to stateless session beans and message driven beans. but not stateful session beans.
2. @Schedule creates so called "automatic" timers to schedule tasks.
3. if you wanna make sure that the ejb is fully initialized before servicing, you can use the annotation @Startup
4. this example uses a singleton ejb to schedule the task. otherwise you end up with the scheduled method called by multiple times at the timer expires.
5. A timeout callback method can have public, private, protected, or package level access. The method must not be declared as final or static, and must not throw application exceptions.
6. Schedule-based timer times are evaluated in the context of the default time zone associated with the container in which the application is executing. A schedule-based timer may optionally override this default and associate itself with a specific time zone.
7. attribute "persistent" defaults to "true", meaning the timer/the scheduled task/method execution would survive server restart.
8. one thing to mention is that one might need to remove the "tmp/work/data" folders from JBoss6 server configuration, after a redeployment. otherwise, it won't work as expected - the singleton ejb looks like have multiple instances.
发表评论
-
ActiveMQ and Spring JMS Framework Message Loss
2019-06-28 07:15 29Java Message Service (JMS) prov ... -
how to proxy to k8s web console
2018-06-28 07:16 530### how to access k8s web conso ... -
Call Stored Procedure with JPA 2.1
2018-06-27 10:57 619JPA 2.1 introduces APIs to call ... -
Send response and then process - async processing
2017-10-12 09:35 509If your request processing take ... -
java 8 time api test
2017-08-29 05:40 440public class ParseUtcDateTime ... -
Setup ApiKey in header with Swagger generated client code
2017-08-23 06:41 439@Value("${api.base.path} ... -
Simple tool to monitor jvm memory usage and garbage collection
2016-10-13 06:06 320JDK has built-in tool to moni ... -
Externalize Application Config properties with JBoss 7.1
2017-06-02 12:09 307If you have configuration pro ... -
JPA native query does not support setting list parameters
2014-03-27 06:45 972you might want to do the ... -
Owning Side and Inverse Side of JPA entity relationships
2013-09-10 07:08 760Entity relationships may be b ... -
avoid setParameter for "order by" in JPQL
2013-03-07 05:55 752you might want to create a JP ... -
JPA Path Expression, operator IN and Collection properties
2013-01-23 16:25 1340If we want to select the Orde ... -
与JEE6/EJB3.1相比, Spring framework 丧失了几乎所有的优势
2013-01-19 13:13 997The Spring framework was a ma ... -
Simple EasyMock tutorial
2012-12-20 11:57 622http://veerasundar.com/blog/20 ... -
Servlet 3.0 @WebFilter and @WebServlet
2012-12-04 07:09 2634Servlet 3.0 provides new annota ... -
Why JSF2 @ViewScoped not working?
2012-12-03 06:55 1343javax.faces.bean.ViewScoped sai ... -
When to configure an XA datasource?
2012-11-16 12:58 1226If you ever came across this wa ... -
java ee transaction and datasource concepts
2012-11-10 13:48 9891. What is a transaction? A tra ... -
pass params to primefaces confirmation dialog box
2012-09-28 19:30 1300<p:dataTable id="idStuD ... -
Handle Big Dataset with Real Pagination with Primefaces 3.3 LazyDataModel
2012-09-21 13:41 5584If you have millions of record ...
相关推荐
NULL 博文链接:https://jxee.iteye.com/blog/1608820
开发工具 eclipse-jee-mars-2-win32开发工具 eclipse-jee-mars-2-win32开发工具 eclipse-jee-mars-2-win32开发工具 eclipse-jee-mars-2-win32开发工具 eclipse-jee-mars-2-win32开发工具 eclipse-jee-mars-2-win32...
eclipse-jee-2020-06-R-win32-x86_64
eclipse-jee-2022-09-R-win32-x86_64.zip 适用于Windows x86_64
eclipse-jee-2022-03-R-win32-x86_64.zip
eclipse-jee-mars-R-win32-x86_64.zip 截至2015.06.30 eclipse-j2ee 最新版
Eclipse IDE for Enterprise Java and Web Developers (eclipse-jee-2021-12-R-win32-x86_64.zip)适用于Windwos x86_64
eclipse-jee-2021-06-R-win32-x86_64.zip
eclipse-jee-2021-12-R-win32-x86_64 eclipse-jee-2021-12-R-win32-x86_64 eclipse-jee-2021-12-R-win32-x86_64
NULL 博文链接:https://jxee.iteye.com/blog/1575432
eclipse-jee-2021-03-R-win32-x86_64
eclipse-jee-mars-2-win32 javaee开发工具 eclipse-jee-mars-2-win32 javaee开发工具
eclipse-jee-oxygen-R-win32.7z.003
eclipse-jee-2018-09-win32-x86_64.zip
eclipse-jee-2020-09-R-win32-x86_64.zip
eclipse-jee-2023-09-R-win32-x86_64.zip 适用于Windows系统
eclipse-jee-ganymede-SR2-win32.zip
eclipse-jee-2020-12-R-win32-x86_64,最新版本eclipse4.18,需要其他版本eclipse可以查询我资源列表
eclipse-jee-2022-06-R-win32-x86_64.zip 适用于Windows x86_64