在websphere8.0
上运行的javaee6
应用程序的上下文中,在执行任何业务方法之前,我需要执行许多启动任务。为此使用@Startup
,@Singleton
bean似乎是一个很有前途的解决方案。然而,我并不完全清楚应用程序生命周期到底是什么样子。EJB 3.1规范规定了以下内容:
默认情况下,容器负责决定何时初始化单例bean实例。但是,bean开发人员可以选择性地配置单例以进行快速初始化。如果启动注释出现在Singleton bean类上,或者如果Singleton已通过部署描述符指定为需要立即初始化,则容器必须在应用程序启动序列期间初始化Singleton bean实例。容器必须在将任何客户端请求传递到应用程序中的任何企业bean组件之前初始化所有此类启动时单例。
>
说到客户机请求,在这个上下文中,带有@scheduled
注释的EJB方法的计划执行是否算作一个?
我需要保证在应用程序启动时执行一些代码,然后才能运行应用程序的各种EJB中的任何业务方法,无论是通过客户端调用还是计划执行。在@Singleton的@PostConstruct
方法中运行启动代码是否提供了这样的保证?如果没有,有没有其他方法可以保证这种行为?
@Startup
bean的@PostConstruct
方法返回,然后才允许任何客户端请求。 @PostConstruct
方法完成,因此@PostConstruct
方法不能等待定时器回调调用完成。问题内容: 我对此设置有问题,甚至无法查看日志。 这是我的 EJB: 的: Maven pom: 问题答案: 您具有无效的bean类型作为@DependsOn的属性。DependsOn用于表达两个Singleton会话Bean之间的依赖性,而不是Singleton和Stateless之间的依赖性。您应该将SchedulerEJB更改为Singleton或删除依赖项。 如果您决定将Scheduler
我现在刚到Spring。我试图遵循调用PostConstruct和BeanPostProcessor的顺序。 根据我所学,以下是顺序:- null null SpringConfig文件foo.xml删除了beans标记上下文:component-scan base-package=“SpringTest” 回应 初始化MySpring构造函数 初始化ApplicationContext Post
问题内容: 构造bean之后,我想使用EntityManager从数据库中检索数据。在构造函数中是不可能的,因为EntityManager是在调用构造函数之后注入的。所以我试图用@PostConstruct注释的方法来做。根据API,在完成所有注入后将调用PostConstruct方法。执行查询是可行的,但是它总是返回一个空列表。如果我在其他方法中使用相同的查询,它将返回正确的结果。有人知道,为什
问题内容: 假设我正在定义一个缓存bean,它将在启动应用程序时初始化,并以固定的间隔刷新,如下所示: 即使我未设置初始延迟,也可以确保@PostConstruct下的initializeCache()方法在第一次调度的refreshCache()调用之前立即执行吗? 问题答案: 是的,带有注解的方法可以保证首先执行。 的注释由活化ScheduledAnnotationBeanPostProces
使用GWT 2.5.0,我想使用客户端验证和编辑器。在尝试传递ConstraintViolationjava.util时,我遇到了以下错误。设置为EditorDriver,如下所示。 < code >方法setConstraintViolations(Iterable 我能找到的唯一一篇相关帖子是问题6270! 下面是一个使用Person编辑器打开PopUpDialog的例子,它允许您指定一个名称
我试图使用JBoss7.1.1中的JNDI从远程客户端调用,但我得到了一个异常: 我使用的是jboss的安全机制,并且我已经通过add-user.bat添加了用户,还有带有用户名和密码的jboss-ejb-client.properties文件,但仍然会得到异常。我遵循了链接的示例集:使用JNDI从远程客户端进行EJB调用,当我不使用安全机制时也是如此,但是当我使用安全机制时,就会出现错误 你错过