如上图所示,我有一个EJB-3企业应用程序(EAR文件),它充当门户并包含3个Web应用程序(WAR文件),它们与同一个数据存储进行通信和交易。这3个Web应用程序不是Portlet实现,而是通过企业应用程序的持久层与数据存储交互的普通Web应用程序。这些网络应用程序是独立开发的,因此,其中一些使用来自企业应用程序的Web服务,一些使用EJB客户端。此外,还有一个替代这些webapps(WebApp1、WebApp2和WebApp3)并使用独立的企业应用程序与数据库进行通信和交易的另一种选择,如下所示:现在,我的问题是:1)列出的2个选项(以上)中最好的选项是什么?2)当我们将那些充当
我有一个简单的(webprofile)EJB3.1应用程序并尝试确定@ApplicationScopedCDIBean中的当前用户,所以我使用:PrincipalcallerPrincipal=this.sessionContext.getCallerPrincipal()工作正常(因此我可以确定当前用户的名称)。但是在任何(其他)EJB出现任何异常之后,此调用将不再起作用(我需要重新启动服务器)!该方法没有返回调用方主体,而是抛出此异常。Causedby:java.lang.NullPointerExceptionatcom.sun.ejb.containers.EJBContext
我遇到了内存泄漏问题,因为EJB没有从池中删除。ejb是3.0并且是无状态的。Inmyjbossjmx-console4.3,thestatisticsofaparticularejblookslike:AvailableCount30MaxSize30CurrentSize5727CreateCount5727RemoveCount0我的问题是:为什么“删除计数”没有增加?并且“当前大小”大于“最大大小”? 最佳答案 伙计,你遇到了一个可怕的错误,其中SLSB没有被清除和泄漏......几周前我们在我们的生产环境中遇到了这个问题.
我有一个使用EJB2.x实体bean(BMP)的大型应用程序。这是众所周知的可怕的持久性策略(如有必要,我可以详细说明)。我想开始迁移此应用程序以使用更具表现力、透明和非侵入性的持久性策略,鉴于我公司以前的经验,Hibernate3.x是显而易见的选择。迁移到Hibernate需要一段时间,因为应用程序中有超过100个表使用实体bean。因此,我正在寻找一种分阶段的方法,其中两种持久性策略并行运行,如果可能的话,最好同时在同一张表上运行。我的问题是,将这两种持久性策略结合起来有哪些缺陷(如果有的话)?他们会互相妨碍吗? 最佳答案 正
我们有一些JavaEE5无状态EJBbean,它将注入(inject)的EntityManager传递给它的助手。这样安全吗?到目前为止它一直运行良好,但我发现一些Oracle文档声明它的EntityManager实现是线程安全的。现在我想知道我们直到现在才没有问题的原因是否只是因为我们使用的实现恰好是线程安全的(我们使用Oracle)。@StatelessclassSomeBean{@PersistenceContextprivateEntityManagerem;privateSomeHelperhelper;@PostConstructpublicvoidinit(){helpe
使用以下命令将端口统一应用到我的glassfish域之后asadmincreate-protocol--securityenabled=falsehttp-redirectasadmincreate-http-redirect--redirect-port8181--secure-redirecttruehttp-redirectasadmincreate-protocol--securityenabled=falsepu-protocolasadmincreate-protocol-finder--protocolpu-protocol--target-protocolhttp-li
我有一个ejb-3兼容的ejb,比方说@RemoteinterfaceHai{StringsayHai();}Stateless(name="xxx",mappedname="yyy")publicclassHaiImplimplementsHai{publicStringsayHai(){return"Hai";}}我需要为这个EJB生成stub。但我不想使用websphere工具或maven工具。有没有办法用jdk生成stub?创建远程客户端时Haihai=(Hai)ctx.lookup("yyy#com.zz.Hai");System.out.println(hai.sayHai
我需要安排一个任务在Weblogic10.3服务器上定期运行(例如每6小时一次,或者每天中午12点)。该任务基本上是从数据库中检索一些数据并使用它执行一些业务逻辑。实现此目标的最佳方法是什么?我搜索了互联网,找到了一些解决方案,例如:使用定时器服务。工作经理。EJB计时器。顺便说一句,我仍在学习JavaEE,所以这可能是一个基本问题,或者我遗漏了什么。 最佳答案 在JavaEE容器下运行时,应避免使用JDK的标准计时器功能。您应该改用EJB计时器;优先于任何专有解决方案(我认为工作管理器是WebLogic专有的)。从这里开始:htt
Thisquestionalreadyhasanswershere:InjectanEJBintoJAX-RS(RESTfulservice)(7个答案)5年前关闭。我正在从事REST服务并同时学习EJB。我只是使用简单的链Controller->服务->DAO运行我的应用程序,并且未注入(inject)我的EJBhotelService-它为null。@Path("/hotels")publicclassHotelsController{@EJBprivateHotelServicehotelService;@GET@Produces(MediaType.APPLICATION_JS
我可以像这样将自己的POJO注入(inject)到托管对象中:importjavax.ejb.Stateless;importjavax.inject.Inject;@StatelesspublicclassSomeEjb{@InjectprivateSomePojosomePojo;}我有这个POJO://NoannotationspublicclassSomePojo{}这很好用。如果我将EJB注入(inject)JSFbacking-bean,我可以看到somePojo的值是非空值,正如预期的那样。但是,如果我尝试将java.util.Date注入(inject)到SomeEjb