问题标签 [ejb-3.1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2325 浏览

asynchronous - DEADLOCK,EJB 3.1 与 Singleton 中的异步方法和 TimerService

在我的 Singleton-EJB 中,我每 2 分钟启动一次 TimerService。当客户端访问测试方法时,应用程序有时会陷入死锁。问题是,测试方法调用 EJB 内部的异步方法(请参阅 Method determineABC)。当scheduleMethod尝试创建单个操作计时器并因此尝试获取锁时,就会发生死锁(因为 hte 计时器回调方法使用 LOCK.WRITE 进行了注释)。同时,我们已经在尝试调用异步方法asynchMethod的determineABC方法中。也许是ejbLocal.asynchMethod(...);的调用还尝试获取锁。无论如何,我在这里遇到了死锁,因为从不调用异步方法。那么问题是什么?

这是一个源代码片段:

当我只使用@Schedule方法而不使用TimerService时也会发生死锁......当我不使用 Future 对象但 void 作为异步方法的返回类型时也会发生死锁。

当抛出超时异常时,死锁就解决了。当我用@AccessTimeout(2000)注释计时器方法并且这个时间结束时,调用异步方法,因此也解决了死锁。

当我将 Locktype.READ 用于计时器方法时,不会发生死锁。但为什么?异步方法调用什么?

0 投票
3 回答
5452 浏览

netbeans - 如何使用 netbeans 测试 EJB?

我一直在努力尝试在 netbeans 中测试一个超级简单的 EJB 项目。我已经尝试了我的 java 书中的几个示例,还有一个我在网上找到的更简单的示例(http://javadude.wordpress.com/2010/02/22/tutorial-most-simple-test-application-for-embedded-glassfish -netbeans-哈德森/)。这是一个超级基本的 EJB,只添加了两个数字.. 就是这样!!它运行良好,但无论我如何尝试测试它,都没有任何效果。更令人费解的是,我在测试它的两台不同的笔记本电脑上遇到了两个不同的错误。显然我做错了什么......任何建议都会非常感激。

我得到的一个错误是:

测试用例:testAddNumbers(bean.MyBeanTest):导致错误没有可用的 EJBContainer 提供程序:没有找到提供程序名称。

javax.ejb.EJBException:没有可用的 EJBContainer 提供程序:没有找到提供程序名称。

另一个是:


严重:部署应用程序时出现异常 java.lang.IllegalArgumentException:无效的 ejb jar [WebTestEmb.jar]:它包含零 ejb。注意: 1. 一个有效的 ejb jar 至少需要一个会话、实体(1.x/2.x 样式)或消息驱动 bean。2. EJB3+实体bean(@Entity)是POJO,请将它们打包为库jar。3. 如果 jar 文件包含使用 EJB 组件级注解(@Stateless、@Stateful、@MessageDriven、@Singleton)注解的有效 EJB,请检查 server.log 以查看注解是否被正确处理。


显然,我的项目中确实有一个 ejb。它完全按照我上面发布的网址中的说明构建。

谢谢!

0 投票
1 回答
877 浏览

java-ee-6 - 嵌入式 Glassfish - EJB 3.1 - @Schedule

我是 Java EE 6 的新手,正在努力让一些演示应用程序最终运行。

我有一个应用程序范围的 bean,它上面有一个 @Schedule 注释,理论上应该每分钟触发一次该方法。但是,该方法似乎从未被调用过。它只是写入它被调用的日志。

我可以在嵌入式 glassfish 上使用 EJB3.1 吗?我需要做一些特别的事情来让它工作吗?

沃尔特

0 投票
2 回答
14944 浏览

java - How to inject one EJB 3.1 into another EJB

I'm developping simple app where one EJB should be injected into another. I'm developping in IDEA Jetbrains IDE. But after i make @EJB annotation in Ejb local statless class my IDE highlight it with error: EJB '' with component interface 'ApplicationController' not found.

Can anyone tell Why?

0 投票
2 回答
920 浏览

jakarta-ee - EJB3 + JSF2;像有状态的一样无状态

我在 ejb 容器中有一个无状态会话 bean。如果我从 jsf2 表单调用它,它可以正常工作,但如果我再次调用该表单,它会显示我之前插入的相同数据。即使我关闭并重新打开浏览器,它也会发生。我必须等待几分钟,直到表单显示空白字段。不会为每个请求重新创建无状态会话 bean。它的行为就像一个有状态的。怎么了?

应用服务器:Glassfish 3.0.1

0 投票
2 回答
1787 浏览

java - JEE6 如何在 Observer 和 Observee 之间建立联系(观察者模式)

我已经阅读了一些关于 JEE6 上的观察者模式实现的博客文章,有些事情困扰着我......我找不到任何信息 atm 所以我在那里问......

我发现了以下示例:

我无法理解事件消费者和事件生产者之间的链接是如何完成的......

是通过方法的命名约定吗?(“on”、“after”、“before”……这些词是有意义的)

是通过比较给定的参数(这里是 String 和 MyEvent)吗?

我不知道,也看不出还有什么……

0 投票
2 回答
565 浏览

jakarta-ee - 如何在 Java EE 6 上使用可序列化事务?

我正在学习用于事务管理的新注释,例如@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW),但我不知道如何使用SERIALIZABLE 隔离创建事务。这是否可能基于每个方法,或者我必须在整个应用程序的连接上设置它?

0 投票
1 回答
3359 浏览

jakarta-ee - EE 6(GlassFish):多少个容器?多少个单例?

好的,这里仍然试图理解基本的 EE 6 概念。我希望这里有人可以帮助我。

我正在使用单个域运行 GlassFish v3 服务器 Kukla。我部署了 MyEEApp.ear,其中包含 MyEEWebApp.war、MyEJBs.jar 和 MyUtilityLibrary.jar。我的 EJB jar 包含一个名为 MySingleton 的 @Singleton bean。

然后我设置了另一个服务器,称为 Fran,并部署了相同的 EAR。我对名为 Ollie 的第三台服务器执行相同的操作。

三个完全相同的 EAR 文件部署到三个完全相同(名称和 IP 地址除外)的服务器上。

所以这是我的问题:

  1. 在给定的服务器上,比如 Kukla,我有多少个“容器”?EAR 是否只有一个容器?还是 WAR 和 EJB jar 也有自己的容器?
  2. 第一个答案的实际影响是什么?
  3. 就此而言,容器到底是什么?
  4. 我的 WAR 中的类可以使用 @EJB 注入来访问 EJB jar 中的 bean,因为它们都是同一个 EAR 的一部分吗?
  5. 就此而言,普通的旧 Java 类可以使用@EJB 注入,还是仅适用于其他 EJB?
  6. 我将创建多少个单例 bean 实例?每台服务器一个?还是只有一个?如果每台服务器一个,有没有办法保证整个集群中的“真正”单例?
  7. 在 GlassFish 中,我应该在哪里以及如何配置 JNDI 来查找资源?比如说,我是否可以将 EJB jar 从一台机器移动到另一台机器并让 Web 应用程序自动找到它?
  8. 是否可以为 EJB bean 配置负载平衡?如果是这样,怎么做?
  9. 那么三个 WAR 实例呢?有没有办法配置负载平衡,以便请求转到使用最少的机器上的实例?

我知道,很多问题。对于那个很抱歉!

您的帮助将不胜感激!杰夫

0 投票
2 回答
10012 浏览

java - 为什么在抛出 RuntimeException 时会话 bean 方法会抛出 EjbTransactionRolledbackException

我试图通过约束验证来持久化实体,当调用持久化时 - 抛出约束并且调用者获取EjbTransactionRolledbackException......所以我尝试显式调用验证并抛出ConstraintViolationException/RuntimeException仍然调用者获取EjbTransactionRolledbackException......当我抛出MyException扩展Exception- 调用者得到MyException

即使我明确表示sc.setRollBackOnly它仍然发生:(

这不应该是行为。

这是怎么回事?

配置:

Netbeans 6.9.1 Glassfish 3.0.1 JPA 2.0 (EclipseLink) EJB 3.1

谢谢!!!

0 投票
1 回答
4360 浏览

java - 如何通过基于 ejb 3.1 注释的邮件发送邮件

我试图通过注入javax.mail.sessionEJB 3.1@Resource没有任何成功,我相信我错过了正确的配置(我想要基于注释的解决方案而不是 XML 描述符)

我阅读了 Java EE 6 的新规范并了解我可以在新的 Java EE 6 连接器 API 中使用以通过消息驱动 Bean 和基于注释的解决方案发送邮件,但没有包含端到端解决方案的示例。 . :(

有人可以帮助我理解/举个例子吗?