草庐IT

java - 如何停止无尽的 EJB 3 计时器?

我是EJB3的新手。我使用以下代码启动无尽的EJB3计时器然后部署到JBOSS4.2.3@StatelesspublicclassSimpleBeanimplementsSimpleBeanRemote,TimerService{@ResourceTimerServicetimerService;privateTimertimer;@Timeoutpublicvoidtimeout(Timertimer){System.out.println("HelloEJB");}}然后调用它timer=timerService.createTimer(10,5000,null);效果很好。我创建

java - 我可以为 EJB 使用 CDI 构造函数注入(inject)吗?

我想做这样的事情:@StatelesspublicclassGreeterEjb{privatefinalGreetergreeter;@InjectpublicGreeterEjb(Greetergreeter){this.greeter=greeter;}publicStringgreet(){returngreeter.greet();}}我在Glassfish3.1.1和JBoss7.0.2上试过,结果好坏参半。在某些情况下它起作用,在其他情况下它不起作用。参见thisthreadintheGlassfischforum如果您对细节感兴趣。EJB3.1spec,第4.9.2Be

java - EJB 和 JPA 有什么关系?

这个问题在这里已经有了答案:RelationshipbetweenEJB3.0andJPA?(4个答案)关闭5年前。我正在阅读EJB3inAction一书,我有以下问题:您编写并使用@Entity等注释的POJO是否也是EJB实体类型?我不明白JPA和EJB有什么关系。现在JPA不是自己的规范吗?这些实体也包含在自己的持久性容器中。他们谈论EJB3JavaPersistenceAPI等,但我不明白实体与EJB有什么关系。

java - JEE7 : Do EJB and CDI beans support container-managed transactions?

JavaEE7由一堆“bean”定义组成:托管Beans1.0(JSR-316/JSR-250)Java1.0(JSR-330)的依赖注入(inject)CDI1.1(JSR-346)JSF托管Bean2.2(JSR-344)EJB3.2(JSR-345)为了摆脱脑海中的困惑,我研究了几篇“什么时候使用哪种bean类型”的文章。EJB的优点之一似乎是它们单独支持声明性容器管理事务(著名的事务注释)。不过,我不确定这是否正确。有人可以批准吗?与此同时,我想出了一个简单的演示应用程序来检查这是否真的是真的。我刚刚基于this定义了一个CDIbean(不是一个EJB-它没有类级别注释),如下

java - 急切/自动加载 EJB/在启动时加载 EJB(在 JBoss 上)

EJB似乎被延迟加载-每当访问时。但是,我想急切地初始化它们-即每当容器启动时。这是如何实现的(尤其是在JBoss中)Thistopic给出了一些提示,但不是很令人满意。 最佳答案 从EJB3.1开始,可以通知单例bean模块的启动和停止:@Singleton@StartuppublicclassStartupBean{@PostConstructprivatevoidpostConstruct(){/*...*/}@PreDestroyprivatevoidpreDestroy(){/*...*/}}在EJB3.1之前,没有标准的

java - EJB3 本地和远程接口(interface)

我了解本地接口(interface)是为同一容器的JVM实例中的客户端设计的,而远程接口(interface)是为驻留在EJB容器的JVM之外的客户端设计的。不驻留在(或打包)在同一个.ear中但驻留在同一个JavaEE服务器上的Web应用程序客户端怎么样? 最佳答案 官方@Local注释的bean只有在同一个应用程序中才能被访问。与.ear(或其他.war或其他.jarEJB)分开部署的.war是不同的应用程序,即使部署到同一个应用程序服务器实例也是如此。因此,没有保证您的.war中的代码可以调用.ear中定义的@LocalEJB

java - 使用 JPA/EJB3 进行批量插入

JPA/EJB3框架是否提供标准方式来执行批量插入操作...?我们使用hibernate作为持久化框架,所以我可以回退到HibernateSession并使用组合session.save()/session.flush()实现批量插入。但是想知道EJB3是否支持这个... 最佳答案 JPA和Hibernate都没有为批量插入提供特别支持,使用JPA进行批量插入的习惯用法与使用Hibernate时相同:EntityManagerem=...;EntityTransactiontx=em.getTransaction();tx.begi

java - EJB 3.1 @Schedule 可以在应用程序代码之外配置吗?

如何配置计划间隔:@Schedule(persistent=true,minute="*",second="*/5",hour="*")在应用程序代码之外?如何在ejb-jar.xml中配置?我可以在应用程序之外配置它(属性文件的种类)吗? 最佳答案 以下是部署描述符中的调度示例:MessageServiceejb.MessageServiceStateless0/18**showMessage另一种配置定时器的方法是编程调度。@Singleton@StartuppublicclassTimedBean{@Resourcepriva

java - 如何从 EJB 3 访问文件系统?

我想知道如何从EJB3bean访问文件系统?我在互联网上搜索了这个主题,但没有找到好的答案。有些人建议使用java.io/java.nio,即使规范禁止这种用法。无论如何,大多数应用服务器似乎都允许访问此API。另一个想法是使用JCA连接器来访问文件系统或LDAP目录。当一个简单的文件在性能和使用的资源方面是一个更好的解决方案时,我想要这样做以避免在数据库中使用BLOB。你会如何解决这个问题? 最佳答案 不允许您在EJB中访问文件系统的原因是您无法控制应用程序如何在(JavaEE)Container中运行。例如,您的应用程序可能跨服

java - 除了 EAR 和 EJB,我还能从 Java EE 应用服务器中获得什么,而我在 Tomcat 之类的 servlet 容器中没有?

我们使用Tomcat来托管基于WAR的应用程序。除了org.apache.catalina.authenticator.SingleSignOn之外,我们是兼容servlet容器的J2EE应用程序。我们被要求迁移到商业JavaEE应用服务器。改变这一点的第一个缺点我看到的是成本。无论申请费用服务器,Tomcat是免费的。其次是复杂性。我们不使用EJB或EAR特性(当然不是,我们不能),也没有错过它们。那么我没有看到的好处是什么?我没有提到的缺点是什么?提到的是...JTA-Java事务API-我们通过数据库控制事务存储过程。JPA-JavaPersistenceAPI-我们使用JDBC