我了解本地接口(interface)是为同一容器的JVM实例中的客户端设计的,而远程接口(interface)是为驻留在EJB容器的JVM之外的客户端设计的。不驻留在(或打包)在同一个.ear中但驻留在同一个JavaEE服务器上的Web应用程序客户端怎么样? 最佳答案 官方@Local注释的bean只有在同一个应用程序中才能被访问。与.ear(或其他.war或其他.jarEJB)分开部署的.war是不同的应用程序,即使部署到同一个应用程序服务器实例也是如此。因此,没有保证您的.war中的代码可以调用.ear中定义的@LocalEJB
JPA/EJB3框架是否提供标准方式来执行批量插入操作...?我们使用hibernate作为持久化框架,所以我可以回退到HibernateSession并使用组合session.save()/session.flush()实现批量插入。但是想知道EJB3是否支持这个... 最佳答案 JPA和Hibernate都没有为批量插入提供特别支持,使用JPA进行批量插入的习惯用法与使用Hibernate时相同:EntityManagerem=...;EntityTransactiontx=em.getTransaction();tx.begi
如何配置计划间隔:@Schedule(persistent=true,minute="*",second="*/5",hour="*")在应用程序代码之外?如何在ejb-jar.xml中配置?我可以在应用程序之外配置它(属性文件的种类)吗? 最佳答案 以下是部署描述符中的调度示例:MessageServiceejb.MessageServiceStateless0/18**showMessage另一种配置定时器的方法是编程调度。@Singleton@StartuppublicclassTimedBean{@Resourcepriva
我想知道如何从EJB3bean访问文件系统?我在互联网上搜索了这个主题,但没有找到好的答案。有些人建议使用java.io/java.nio,即使规范禁止这种用法。无论如何,大多数应用服务器似乎都允许访问此API。另一个想法是使用JCA连接器来访问文件系统或LDAP目录。当一个简单的文件在性能和使用的资源方面是一个更好的解决方案时,我想要这样做以避免在数据库中使用BLOB。你会如何解决这个问题? 最佳答案 不允许您在EJB中访问文件系统的原因是您无法控制应用程序如何在(JavaEE)Container中运行。例如,您的应用程序可能跨服
我们使用Tomcat来托管基于WAR的应用程序。除了org.apache.catalina.authenticator.SingleSignOn之外,我们是兼容servlet容器的J2EE应用程序。我们被要求迁移到商业JavaEE应用服务器。改变这一点的第一个缺点我看到的是成本。无论申请费用服务器,Tomcat是免费的。其次是复杂性。我们不使用EJB或EAR特性(当然不是,我们不能),也没有错过它们。那么我没有看到的好处是什么?我没有提到的缺点是什么?提到的是...JTA-Java事务API-我们通过数据库控制事务存储过程。JPA-JavaPersistenceAPI-我们使用JDBC
当我在EJB中有一个@Asynchronous方法,并且我没有指定@TransactionAttribute,那么容器究竟如何处理事务界限?很明显,它不能使用调用线程的事务,那么它是做什么的呢?同样的问题,但关于由TimerService触发的方法。编辑:我认为我的措辞很糟糕。我已经知道默认模式是“需要”。因此可以安全地假设这些方法将始终在事务中调用。但我的问题是,该交易的生命周期是什么样的?容器是否为每个调用创建一个新事务?或者它是否对异步工作线程上的所有调用重复使用相同的事务?如果是后者,那么交易什么时候结束? 最佳答案 与MD
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭8年前。Improvethisquestion什么是EJB,我们为什么要使用它?请用简单的语言解释。谢谢。 最佳答案 EJB或EnterpriseJavaBean是普通的java类(自3.0版起),带有注释,使您能够编写应用程序的业务逻辑,然后在JavaEnterpriseEditionServer上部署(或安装)它。如果您希望利用JavaEnterpriseEdition(Jav
我有以下配置:一个GF上的1个EAR,包含2个带有EJB组件的EJB-JAR。另一个Glassfish服务器(=>其他JVM)上的1个WAR,其中包含访问EJB组件的Web组件。我的EAR的每个EJB-JAR中都有2个EJB业务服务,它们都是这样开发的:@RemotepublicinterfaceServiceAItf{...}@Stateless@LocalpublicclassServiceAImplimplementsServiceAItf{...}在我的WAR中,我通过远程接口(interface)上的显式"InitialContext.lookup"访问EJB组件。在我的EA
分离通过EntityManager获取的特定JPA实体Bean的最简单方法是什么。或者,我是否可以让查询首先返回分离的对象,以便它们本质上充当“只读”?我想这样做的原因是因为我想修改bean中的数据-仅在我的应用程序中,但从来没有将它持久化到数据库中。在我的程序中,我最终必须在EntityManager上调用flush(),这会将所有从附加实体的更改保存到基础数据库,但我想排除特定对象。 最佳答案 (可能来不及回答,但对其他人有用)我现在正在使用JPA开发我的第一个系统。不幸的是,当这个系统几乎完成时,我遇到了这个问题。简单地说。使
我正在尝试通过注释将StatelessEJB注入(inject)到我的JAX-RSWeb服务中。不幸的是,EJB只是null,当我尝试使用它时,我得到了一个NullPointerException。@Path("book")publicclassBookResource{@EJBprivateBookEJBbookEJB;publicBookResource(){}@GET@Produces("application/xml")@Path("/{bookId}")publicBookgetBookById(@PathParam("bookId")Integerid){returnboo