草庐IT

java - EJB3 - 通过注入(inject)与查找获取 bean - 有什么区别、含义和陷阱?

我知道有两种获取EJB实例的方法:通过@EJB注释在servlet和EJB中进行依赖注入(inject)通过Context.lookup在任何地方进行JNDI查找使用这两种方法中的任何一种有什么区别、含义和问题?它们相同吗?依赖注入(inject)比查找快吗?事务处理和对象生命周期管理呢?我知道的事情包括:注释仅适用于servlet和EJB方便的语法容器无关查找可以在运行时以编程方式实例化EJB接口(interface)的不同实现。可在任何地方工作-例如POJO。取决于容器的命名约定 最佳答案 两者都达到相同的结果。这更像是一个耦合

java - 如何获得有关 EJB 部署的通知(设置计时器)?

我正在部署一个EJB,它应该设置一个计时器并由它每24小时触发一次。但是我应该在哪里设置定时器呢?@PostConstruct无济于事——这是一个sessionbean,因此在创建实际实例时将调用构造后方法(这永远不会发生,因为此bean的唯一目的是跟踪计时器).有没有其他方法可以获取有关bean部署(不是实例化)的通知,以便在那里设置计时器?谢谢 最佳答案 EJB3.1引入了Singletonbean.它将在部署EJB时创建。@Singleton@StartuppublicclassTimerSessionBean{@Resour

java - EJB Stateless Session Bean 应该如何正确注入(inject)到 web 模块中?

作为JavaEE的新手(但不是Java本身),我正在尝试构建一个非常简单的“企业应用程序”,将Hibernate作为JPA提供程序,将JSF作为实际的UI框架。为此,我将NetBeans7与GlassFish3.1结合使用。{ApplicationName}-ejb:我已经完成了从数据库和这些实体的本地sessionbean生成实体类的工作。Beans.xml就位。@StatelesspublicclassQuestFacadeextendsAbstractFacadeimplementsQuestFacadeLocal{//somemethodshereaswellasEntityM

java - @ViewScoped 托管 bean 中的 @EJB 导致 java.io.NotSerializableException

我一直在用@ViewScoped托管bean来解决我的问题。我正在使用primeface的“计划”组件来显示一些事件。当用户单击特定按钮时,将使用ajax调用viewscopedbean中的方法,但每次我得到一个“java.io.NotSerializableException”,如果我更改托管bean范围以请求问题消失。我做错了什么?有什么想法吗?这是我的托管bean:@ManagedBean(name="schedule")@ViewScopedpublicclassScheduleMBeanimplementsSerializable{@EJBprivateCongeBeanco

java - 在 AS7 中转换查找的 EJB View 时出现 ClassCastException

我正在将2个EAR部署到JBossAS7.1.0.Alpha1-SNAPSHOT(7.0.1.Final后版本)。两者都部署良好。我有一个EJBSingleton类打包在一个JAR中,在其中一个EAR中:@Startup@Singleton//oneof@Local(Store.class),@Remote(Store.class),@LocalBean@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)@Transactional(TransactionPropagation.SUPPORTS)publicclas

java - 启动 ejb bean 不工作

我正在尝试使用启动ejb在启动时做一些事情。但是我的bean从未被调用过。这是我的bean:importjavax.annotation.PostConstruct;importjavax.ejb.Startup;importjavax.inject.Singleton;@Singleton@StartuppublicclassStartupBean{@PostConstructpublicvoiddoSomething(){System.out.println("why??");}}我正在使用jboss7.1.1。我做错了什么?你可以在bitbucket找到我的源代码:https:/

java - ejb有关角色和身份验证的安全性问题

如果有人可以帮助我解决以下问题,我将不胜感激:@RolesAllowed和@DeclareRoles批注之间有什么区别?我开发了一个登录功能来根据数据库中的信息检查用户名和密码。但是,我想问一下如何将角色分配给经过身份验证的用户,以与上述批注一起使用。 最佳答案 Whatarethedifferencesbetween@RolesAllowedand@DeclareRolesannotations?@RolesAllowed批注用于指定实际上允许访问业务方法的角色列表。此注释的存在会影响EJB在运行时的行为,因为EJB容器会主动验证

java - EJB 容器是否驻留在所有应用程序服务器中。 EJB容器深入

我是EJB的新手。通过到目前为止的所有阅读和搜索,我了解到以下内容:EJB是编写和维护应用程序业务逻辑的bean。所有的EJB都放在称为EJB容器的东西中。EJB容器不过是为管理EJB而编写的服务器端程序,并提供EJB应提供的基本功能(即事务管理、安全性、无冲突环境等)。1)我的疑问是,所谓的EJB组件是否驻留在所有应用程序服务器中?2)当我们说EJB2.1/3.0/3.1时,是否意味着新版本的EJB容器已经发布了?3)EJB容器是否也驻留在Web服务器中?谢谢。 最佳答案 您正确理解了EJB思想。是和否。取决于您对“应用程序服务器

java - EJB 还活着吗?

您还在项目中使用session或实体EJB吗?为什么? 最佳答案 EJB3是对以前版本的巨大改进。它技术上仍然是JavaEE的标准服务器端实现工具集,并且由于它现在没有任何以前的包袱(由于注释和Java持久性),因此非常有用并且在我们说话时正在部署。正如一位评论者指出的那样,JBossSEAM就是基于它的。EJB3是Spring的可行替代方案,这两种技术可能会变得更加紧密相关。this文章详细介绍了Spring3.0将与EJBLite兼容(我不确定它到底是什么)并且可能成为JavaEE6的一部分。EJB不会去任何地方。

名称[EJB:..]在此上下文中不绑定。无法找到[ejb:]。]有根本原因Javax.Naming.NamenotfoundException in Wildfly

我试图在偏远的环境中致电我的EJB,并将Wildfly用作我的容器。抱歉,这是我第一次试图以远程方式致电EJB。我使用以下说明来调用野生蝇中的EJB。https://docs.jboss.org/author/display/wfly8/ejb+invocations+from+a+remote+client+client+using+jndi但是,我遇到了一个错误,称这些ejbs,我不知道我的配置有什么问题。请参阅下面的错误堆栈跟踪:SEVERE:Servlet.service()forservlet[dispatcher]incontextwithpath[/Project-demo]th