草庐IT

java - EJB 3 的最佳特性

场景您已使用EJB版本3开发了一个Web应用程序。系统已部署、交付并供客户使用。如果你必须从头开始重写系统,你会再次使用EJB吗?否:不要回答这个问题,回答thisone而是。是:根据您的个人经验,提供EJB解决的一个重要的、真实的问题。让答案只包含一个问题。这将让其他读者投票选出EJB的最佳特性。 最佳答案 我认为这取决于您所谈论的EJB版本。让我们讨论仅有的两个相关(IMO)版本。EJB2.1可能仍被遗留系统中的某些人使用。它们确实最常用作RPC抽象。他们还提供了一个基本的ORM(对象关系映射)系统。正如您所提到的,提供了事务支

java - EJB 3 的最佳特性

场景您已使用EJB版本3开发了一个Web应用程序。系统已部署、交付并供客户使用。如果你必须从头开始重写系统,你会再次使用EJB吗?否:不要回答这个问题,回答thisone而是。是:根据您的个人经验,提供EJB解决的一个重要的、真实的问题。让答案只包含一个问题。这将让其他读者投票选出EJB的最佳特性。 最佳答案 我认为这取决于您所谈论的EJB版本。让我们讨论仅有的两个相关(IMO)版本。EJB2.1可能仍被遗留系统中的某些人使用。它们确实最常用作RPC抽象。他们还提供了一个基本的ORM(对象关系映射)系统。正如您所提到的,提供了事务支

java - EAR 与单独的 EJB + WAR

将应用程序部署为EAR(带有1个EJB和1个WAR模块)与单独的模块有什么区别?我想使用GlassFish3Web配置文件,但它不支持EAR存档。我可以简单地将EJB和WAR用作单独的模块吗?还有其他选择吗? 最佳答案 3种部署变体之间似乎有些混淆:一个包含EJB和WEB模块的EAR部署单独的EJB模块和单独的WEB模块部署包含EJB类或EJBjar的WEB模块。在第一种情况下,逻辑上您有一个应用程序,但一个应用程序分为两层。WEB模块与EJB模块是隔离的,因为它可以使用EJB模块中的类,但EJB模块不能使用WEB模块中的类。由于它

java - EAR 与单独的 EJB + WAR

将应用程序部署为EAR(带有1个EJB和1个WAR模块)与单独的模块有什么区别?我想使用GlassFish3Web配置文件,但它不支持EAR存档。我可以简单地将EJB和WAR用作单独的模块吗?还有其他选择吗? 最佳答案 3种部署变体之间似乎有些混淆:一个包含EJB和WEB模块的EAR部署单独的EJB模块和单独的WEB模块部署包含EJB类或EJBjar的WEB模块。在第一种情况下,逻辑上您有一个应用程序,但一个应用程序分为两层。WEB模块与EJB模块是隔离的,因为它可以使用EJB模块中的类,但EJB模块不能使用WEB模块中的类。由于它

java - javax.inject.Singleton 和 javax.ejb.Singleton 的区别

我有点困惑。javax.inject.Singleton和javax.ejb.Singleton之间的确切区别是什么? 最佳答案 我找到了一个合理的解释here:Bydefault,javax.ejb.Singletonsessionbeansaretransactional(section13.3.7oftheEJB3.1specification)andrequireacquisitionofanexclusivelockforeverybusinessmethodinvocation(sections4.8.5.4and4.8

java - javax.inject.Singleton 和 javax.ejb.Singleton 的区别

我有点困惑。javax.inject.Singleton和javax.ejb.Singleton之间的确切区别是什么? 最佳答案 我找到了一个合理的解释here:Bydefault,javax.ejb.Singletonsessionbeansaretransactional(section13.3.7oftheEJB3.1specification)andrequireacquisitionofanexclusivelockforeverybusinessmethodinvocation(sections4.8.5.4and4.8

java - 为什么要池化无状态 session bean?

Java中的无状态bean不会在来自客户端的两次调用之间保持其状态。所以简而言之,我们可以将它们视为具有业务方法的对象。每个方法都接受参数并返回结果。当调用该方法时,正在执行堆栈中创建一些局部变量。当方法返回时,局部变量会从堆栈中删除,如果分配了一些临时对象,它们无论如何都会被垃圾回收。从我的角度来看,这与通过单独的线程调用同一单个实例的方法没有什么不同。那么为什么容器不能使用一个bean的实例而不是池化多个实例呢? 最佳答案 池有几件事情。第一,通过每个实例有一个bean,您可以保证线程安全(例如,Servlet不是线程安全的)。

java - 为什么要池化无状态 session bean?

Java中的无状态bean不会在来自客户端的两次调用之间保持其状态。所以简而言之,我们可以将它们视为具有业务方法的对象。每个方法都接受参数并返回结果。当调用该方法时,正在执行堆栈中创建一些局部变量。当方法返回时,局部变量会从堆栈中删除,如果分配了一些临时对象,它们无论如何都会被垃圾回收。从我的角度来看,这与通过单独的线程调用同一单个实例的方法没有什么不同。那么为什么容器不能使用一个bean的实例而不是池化多个实例呢? 最佳答案 池有几件事情。第一,通过每个实例有一个bean,您可以保证线程安全(例如,Servlet不是线程安全的)。

java - Wildfly 和自动重新连接到数据库

我有一个客户端、一个服务器和一个数据库。客户端通过EJB远程接口(interface)与服务器通信。作为服务器-我使用Wildfly8.2.0。作为数据库-我使用MySQL。服务器通过JPA/Hibernate与MySQL通信。当我关闭MySQL服务器时,Wildfly当然会抛出异常。但是当我再次打开MySQL时,Wildfly仍然抛出相同的ERROR.我必须关闭Wildfly,然后再将Wildfly重新连接到数据库。如何在Wildfly中设置自动重连?我尝试在连接URL中设置自动重新连接:jdbc:mysql://localhost/db?autoReconnect=true&

java - Wildfly 和自动重新连接到数据库

我有一个客户端、一个服务器和一个数据库。客户端通过EJB远程接口(interface)与服务器通信。作为服务器-我使用Wildfly8.2.0。作为数据库-我使用MySQL。服务器通过JPA/Hibernate与MySQL通信。当我关闭MySQL服务器时,Wildfly当然会抛出异常。但是当我再次打开MySQL时,Wildfly仍然抛出相同的ERROR.我必须关闭Wildfly,然后再将Wildfly重新连接到数据库。如何在Wildfly中设置自动重连?我尝试在连接URL中设置自动重新连接:jdbc:mysql://localhost/db?autoReconnect=true&