草庐IT

java - EJB3 业务代表

使用EJB3时是否有任何理由进行委托(delegate)?因为我从委托(delegate)中看到的唯一真正好处是它允许隐藏EJB体系结构的查找和访问细节。好吧,它还提供了一些解耦功能,但恕我直言,它基本上未被使用。使用EJB3我们有注入(inject),所以现在我可以创建一个带有@EJB注释的变量并按原样使用它。我还需要代表吗?这个注入(inject)资源消耗大吗?我的意思是,如果我在JSF的请求托管bean中使用它,使用委托(delegate)来减少这些注入(inject)调用可能会更好吗?谢谢! 最佳答案 让我们回顾一下原始bu

java - EJB 中的多线程

我正在学习EJB,到目前为止我已经读到EJB中不允许使用多线程,因为容器应该关心线程安全并让开发人员只关注业务逻辑,所以基本上意味着EJB确保只有一个线程可以同时访问Sessionbean中的方法。当我们有许多用户访问EJB中的同一个方法时会发生什么?容器是序列化访问,还是创建不同的bean实例,每个线程一个?谁能解释一下这方面的政策是什么?另外我有点困惑,为什么如果不允许多线程,那么我们不能创建自己的线程,为什么我们有这个@Asynchronous注释? 最佳答案 是的,它创建了多个实例,并将它们集中在一起。查看officialO

java - 在 Weblogic 10.x.x 上使用 InitialContext 查找 EJB

你能告诉我如何在Weblogic上查找EJB吗?我有以下bean:@Stateless@EJB(name="DataAccess",beanInterface=DataAccessLocal.class)publicclassDataAccessimplementsDataAccessLocal{...}我在其他类中需要这个bean,它不是托管内容的一部分(只是简单的类),所以我想应该这样做:DataAccessLocaldataAccess=DataAccessLocal.class.cast((newInitialContext()).lookup("%SOME_JNDI_NAME

java - 在 POJO 中使用 EJB 注入(inject)

我知道使用@EJB注释的注入(inject)只能在EJB类、servlet或JSF托管bean中使用,但同时我需要在POJO类中有一些注入(inject)业务接口(interface)的实例,所以我想到了执行以下操作:在我的JSF托管bean中@EJBBusinessInterfaceLocalbusinessInterface;privatevoidsomeMethod(){PojoInterfacepojo=newPojoClass(this.businessInterface);}在我的POJO类中我有这个构造函数BusinessInterfaceLocalbusinessInt

Java EE 7 自动计时器(EJB 计时器)不适用于 WildFly 8.1.0

我正在关注UsingtheTimerService构建简单计划执行的教程。尝试自动方法并使用WildFly8.1.0FinalsessionBean@Singleton@StartuppublicclassHelloJob{privatestaticfinalLoggerlogger=Logger.getLogger(HelloJob.class);publicHelloJob(){logger.error(">>>HelloJobCreated.");}@Schedule(second="*")publicvoidsayHello(){logger.error(">>>ServerH

java - 如何在类构造函数运行之前使用 EJB 3.1 注入(inject) Bean?

我有一个具有持久性单元的外观。我需要在RoleControllerConstructor运行之前初始化Facade和它的依赖项,EJB3.1可以做到这一点吗?在Spring中,您只需将一些参数(preConstruction="true")添加到@configurable即可。但是在EJB中,我找不到一种方法来做到这一点,我总是得到一个NullPointer...@FacesConverter("rolesConverter")@Named("roleController")@SessionScoped@TransactionManagement(TransactionManageme

java - javax.ejb.Singleton在集群环境下单例如何?

我需要为集群环境中的所有用户和所有节点维护一个在应用程序中唯一的简单计数器。我考虑过像这样使用单例sessionbean注释javax.ejb.Singleton:packagefoo;importjavax.ejb.Singleton;@SingletonpublicclassBean{privateintcounter;[...]}这看起来很简单,但如果它在集群环境中按预期工作,我找不到答案。集群的每个节点是否都有自己的实例?当然,我可以将bean持久保存在数据库中,但它实际上只是一个计数器,这样做就太过分了。此外,我希望计数器在应用程序崩溃或重新启动时重置,因此坚持使用它会产生比

java - 当我想将 EJB 公开给同一应用程序服务器上的不同应用程序时,是否需要使用 @Remote?

我在一只耳朵中成功部署了一个@Stateless@LocalBean。当我浏览JNDI树时,我可以看到新的EJB3.1标准全局JNDI名称。(java:global/product/product-ejb/ProductManagement)我想在相同应用程序服务器上的不同应用程序中使用此EJB。我需要为此EJB添加远程接口(interface)吗? 最佳答案 规范不要求应用程序间访问本地客户端View,但您的容器可能有选择地支持。如果你希望你的应用程序是可移植的,你不应该依赖它并使用Remote接口(interface)(一个体面

持久化实体时出现 javax.ejb.EJBException

我有一个名为Medico的实体,它是作为数据库中的实体类创建的,因此我认为此处的实体定义是故障安全的,但定义如下:@Entity@Table(name="medico")@XmlRootElement@NamedQueries({Allnamedquerieshere})publicclassMedicoimplementsSerializable{privatestaticfinallongserialVersionUID=1L;@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Basic(optional=false)@Not

java - Glassfish 上 EAR 文件中 EJB3 的 JNDI 查找

我有一个包含一堆JAR的EAR文件,其中一个JAR包含本地sessionBean(EJB3)。我需要从一个非托管POJO中执行这些sessionBean的JNDI查找,该POJO也包含在EAR中(在本例中也包含在与EJB相同的JAR中)。我尝试关注GlassfishEJBFAQ,但无论我尝试什么,我都会继续收到javax.naming.NameNotFoundException。我不确定一些事情。我应该把我的ejb-jar.xml放在哪里(我试过EARsMETA-INF以及JARsMETA-INF)?我需要sun-ejb-jar.xml吗?ejb-link到底是什么,有什么作用?我可能