jjzjj

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到底是什么,有什么作用?我可能

java - 当没有调用 @Remove 注释方法时,有状态 session bean 会导致泄漏吗?

我有一个JSF应用程序,它在托管bean中从远程有状态sessionbean(EJB3.0)调用业务逻辑。现在有一个HttpSessionListener调用该有状态sessionbean上的@Remove注释方法,因此一旦HttpSession被销毁,容器就可以删除有状态sessionbean。现在我想知道如果我不调用带@Remove注释的方法并且HttpSession被销毁会发生什么。有状态sessionbean的客户端此时不存在记录器。容器会删除有状态sessionbean吗?或者它会永远存在导致某种泄漏(内存/磁盘)? 最佳答案

java - 对 EJB 进行单元测试

我正在寻找一种将TDD应用于sessionBean的方法。任何人都可以提供有关如何对其进行单元测试的建议和链接吗?如何使用JUnit来做到这一点?P.S:我是测试驱动开发和sessionBean的新手。我正在使用EJBv2。 最佳答案 我假设您正在谈论EJB2.xsessionBean。对于这些动物,我喜欢做的是:将sessionBean用作包装器,将逻辑委托(delegate)给POJO,您可以在容器外轻松地对其进行测试。外部容器测试更好、更快、更容易等,但不会涵盖部署描述符验证等内容-和/或-使用像Cactus这样的东西用于容器

java - 使用 EJB3.1 登录

我正在使用logback/slf4j来处理我的应用程序中的日志记录。在我开始使用EJB之前,一切都运行良好。在我将无状态EJB添加到我的应用程序后,记录器开始忽略我的logback.xml并停止使用我的附加程序。我切换到编程记录器配置以查看问题所在,现在当我尝试在EJB中使用我的记录器时出现以下错误:org.slf4j.impl.JDK14LoggerFactory无法转换为ch.qos.logback.classic.LoggerContext源于行:LoggerContextlc=(LoggerContext)LoggerFactory.getILoggerFactory();是否