问题标签 [ejb-3.0]

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 投票
2 回答
4059 浏览

java - 如果可能的话,如何使用通用参数覆盖 EJB 3 会话 bean 方法?

假设您有以下 EJB 3 接口/类:

然后是另一个访问 bean 的FooRepositorybean:

FooRepository但是,当调用 bean的 delete 方法时,不会执行覆盖方法。相反,仅执行中定义的删除方法的实现AbstractRepository

我做错了什么,或者仅仅是 Java/EJB 3 的限制,泛型和继承还不能很好地结合在一起?

0 投票
9 回答
35734 浏览

java - 我应该为我的业务层使用 EJB3 还是 Spring?

我的团队正在开发一种带有 Web 前端的面向服务的新产品。在讨论我们将使用什么技术时,我们决定运行 JBoss 应用程序服务器、Flex 前端(可能使用 Adob​​e AIR 进行桌面部署)以及连接客户端和服务器的 Web 服务。

在为我们的业务逻辑使用哪种服务器技术时,我们陷入了僵局。最大的争论是在 EJB3 和 Spring 之间,我们最大的担忧是可伸缩性和性能,以及代码库的可维护性。

以下是我的问题:

  1. 支持或反对 EJB3 与 Spring 的论点是什么?
    • 我可以期待每个陷阱有哪些陷阱?
    • 我在哪里可以找到好的基准信息?
0 投票
2 回答
5151 浏览

java - JPA 实体、Oracle 10g 和日历类型属性是否存在问题?

在将 JPA 实体与 Oracle 10g 结合使用时,我遇到了以下非常烦人的行为。

假设您有以下实体。

该实体映射到 Oracle 10g,因此在 DB 中将有一个表T_ORDER,其中包含一个主键NUMBERID和一个TIMESTAMPactivationDate

假设我创建了一个带有激活日期的类的实例15. Sep 2008 00:00AM。我的本地时区是 CEST,即GMT+02:00. 当我持久化这个对象并T_ORDER使用 sqlplus 从表中选择数据时,我发现表中实际上14. Sep 2008 22:00是存储的,到目前为止还可以,因为 oracle db 时区是 GMT。

但现在令人讨厌的部分。当我将这个实体读回到我的 JAVA 程序中时,我发现 oracle 时区被忽略并且我得到14. Sep 2008 22:00 CEST,这绝对是错误的。

所以基本上,当写入数据库时​​,将使用时区信息,读取时将被忽略。

有什么解决方案吗?我猜最简单的解决方案是将 oracle dbs 时区设置为GMT+02,但不幸的是我不能这样做,因为有其他应用程序使用同一服务器。

我们使用以下技术

MyEclipse 6.5 JPA 和 Hibernate 3.2 Oracle 10g 瘦 JDBC 驱动程序

0 投票
6 回答
2507 浏览

java - EJB 3 的最佳特性

场景

  • 您已经使用 EJB 版本 3 开发了一个 webapp。
  • 该系统由客户部署、交付和使用。

如果您必须从头开始重写系统,您会再次使用 EJB 吗?

:不要回答这个问题,而是回答这个问题。

:根据您的个人经验,提供 EJB 解决的一个重要的、真实的问题。

让答案只包含一个问题。这将让其他读者投票选出 EJB 的最佳特性。

0 投票
8 回答
18390 浏览

transactions - EJB3 事务传播

我有一个无状态bean,例如:

典型的用法是客户端调用 processObjects(...),它实际上并不与实体管理器交互。它做它需要做的事情,并为每个要处理的对象单独调用 process(...) 。process(...) 的持续时间相对较短,但 processObjects(...) 可能需要很长时间才能运行所有内容。因此我不希望它保持一个开放的交易。我确实需要单独的 process(...) 操作在他们自己的事务中操作。这应该是每次调用的新事务。最后,我想保持选项打开,让客户直接调用 process(...)。

我尝试了许多不同的事务类型:从不、不支持、支持(在 processObjects 上)和必需,需要新的(在进程上),但每次调用 merge() 时都会得到 TransactionRequiredException。

我已经能够通过将方法分成两个不同的 bean 来使其工作:

但我仍然很好奇是否有可能在一堂课上完成这项工作。在我看来,事务管理器仅在 bean 级别运行,即使为单个方法提供了更具体的注释也是如此。因此,如果我以某种方式标记一个方法以防止事务开始在同一实例中调用其他方法也不会创建事务,无论它们是如何标记的?

我正在使用 JBoss Application Server 4.2.1.GA,但欢迎/首选非特定答案。

0 投票
4 回答
2934 浏览

java - 不再使用 EJB 3.0 的主要原因是什么?

场景

  • 您已经使用 EJB 版本 3 开发了一个 webapp。
  • 该系统由客户部署、交付和使用。

如果您必须从头开始重写系统,您会再次使用 EJB 吗?

:不要回答这个问题,而是回答这个问题。

:根据您的个人经验,提供不再使用 EJB 的主要原因。

让答案只包含一个原因。这将让其他读者投票选出远离 EJB 3 的第一大理由。

0 投票
1 回答
1727 浏览

java - 为什么要在远程 EJB3 会话 Bean 上使用 InitialContext

为什么在调用远程 EJB 时需要指定各种驱动程序信息?

我们不应该只需要指定 url/port 并且 EJB 容器应该解决所有其他的东西吗?

0 投票
1 回答
1572 浏览

java - JBoss/EJB 与对称 DS

我正在做一个即将开始的项目,由于我正忙于另一个项目,我的同事们继续着手研究新项目的规范。当我进来时,他们刚刚选择使用纯 SQL 进行持久化(尽管很快接受了我添加 Hibernate 的建议),但坚持认为应该使用一个我从未听说过的名为Symmetric DS的工具来执行数据复制。

我很担心,因为据我所知,拥有一个带有 EJB3 的 JBoss 服务器(当前计划仅使用 Tomcat)可以处理所有事务/复制的麻烦,并且应该让我们免于很多麻烦。

你们如何看待这款Symmetric DS?(请注意,我对此没有任何反对意见,只是我知道 JBoss 已经存在了很长时间,而且它的声誉相当可观)

您如何比较这两种解决方案?

谢谢!

编辑:顺便说一下,SymmetricDS 如何处理重复的主键?我的意思是,如果我在数据库 A 中添加一行,在数据库 B 中添加另一行,那么两者可能都会添加相同的主键,对吧?SymmetricDS 如何处理以避免冲突?这个论坛讨论起初似乎解决了其中的一些问题,但并没有完全回答我的问题。

0 投票
2 回答
2589 浏览

java - EJB3 业务逻辑模式和实践

我正在使用 EJB3(Hibernate + Glassfish 用于应用程序和 Web 服务层,Lift on Glassfish 用于 Web UI)在 Java 中开发多层金融处理应用程序,我正在努力解决在哪里的问题把我的业务逻辑。

当这个项目开始时,我们的第一个想法是将大部分业务逻辑放入无状态会话 bean。然而,随着时间的推移,我们发现 EJB 框架提供的依赖注入过于局限,所以我们的很多业务逻辑最终都在由 Guice 在无状态会话 bean 的 @PostConstruct 方法中组装的 POJO 中. 这一进展导致我们在会话 bean 和 POJO 之间的业务逻辑碎片化,我正在尝试找出一种方法来纠正这个问题。

最初,我们尝试让 Web 层使用会话 bean 的远程接口来执行一些可以从 UI 和 Web 服务层访问的功能,这些功能由 @WebService 注释的无状态会话 bean 提供。从持久性和性能的角度来看,这被证明是一场噩梦,因为我们的实体图可能会变得非常大,并且将分离的实体图重新附加到持久性上下文中非常容易出错,所以我们的解决方案是从传递对象开始周围的标识符并在需要时从数据库中查找实体。

我的基本问题是:您可以建议哪些原则和指导方针来决定业务逻辑应该放在会话 bean 中还是 POJO 中?给定一个复杂的对象图,什么时候传递实体 bean 才有意义?

0 投票
1 回答
3762 浏览

java - 如何将 EJB3 注释转换为 ejb-jar.xml 文件配置?

我正在寻找一种可以从带注释的 EJB3 类创建 ejb-jar.xml 配置文件的工具。类似于 XDoclet 的东西,但用于注释,而不是注释中的标签。