问题标签 [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 回答
569 浏览

java - JPA 2.0 & EJB 3.1 - 更新所有者方关系试图插入记录?

我有一个模型:

现在在我的 EJB 服务中,我这样做:

这会引发 db 约束异常(INSERT INTO B VALUES... WITH SAME VALUES THAT ALREADY EXIST IN CURRENT B)。

  1. 为什么在 B 表中已经存在且关系不是 PERSIST 的情况下尝试向 B 插入新记录?

笔记:

1 当我在最后一行之后做:

它也工作......???

2 当我这样做时a.setI(1);没有合并 - 它在 DB 中发生了变化(就像我想的那样)

谢谢!!!

0 投票
2 回答
5937 浏览

java - 取消 @Asynchronous EJB 调用

我正在编写一个企业 Java 应用程序,它使用异步 EJB 3.1 方法并行执行多个任务。为了支持取消长时间运行的任务,我一直在尝试使用 Future 接口。

不幸的是future.cancel(true),尽管取消调用正在返回,但从客户端应用程序调用似乎对执行任务的 bean 的会话上下文没有影响true

我有一个简单的界面:

使用如下 bean 实现:

客户端代码很简单:

bean的输出是源源不断的“Working”;它永远不会检测到取消。

如果相关,我在 JBoss Application Server 6.0.0 上运行该应用程序。我没有找到太多使用 Future 接口的取消功能的示例代码,所以我想知道我是否正确使用了 Future。这种用法看起来正确吗?取消异步 EJB 方法调用是否有更好的选择?

0 投票
2 回答
1191 浏览

java - 是否可以在桌面应用程序中使用 EJB 3.1?

这可能吗?有没有人这样做过?我觉得如果我使用我在 Web 应用程序中习惯的东西,我可以更好地布置我的应用程序。可以使用这个和依赖注入吗?

如果这是不可能的或可行的解决方案,任何人都可以向我指出几个使用 JPA 和 EntityManger 查询数据库的示例项目。谢谢。

0 投票
1 回答
3014 浏览

jpa - 如果 DAO 不是无状态的,Glassfish 不会启动 EntityManager

我有一个带有 EJB 模块的 EAR 应用程序,它包含一个持久性单元和许多 EJB(作为服务和 DAO 层)。

但不推荐将 DAO 作为无状态 bean。所以我使用 CDI 创建了这个注释:

在我的 DAO 更改为不使用后@Stateless

但是 Glassfish 不会在应用程序启动时调出实体管理器。而当我调用 DAO 时,实体管理器处于非法状态。

java.lang.IllegalStateException:无法为 unitName null 检索 EntityManagerFactory

此错误仅发生在 Glassfish 3 中,但不会发生在 JBoss AS 6 中。使用 JBoss AS 6 我可以在启动时看到 Hibernate 日志(但在 Glassfish 中看不到它们)。

作为临时解决方案,我创建了一个具有以下内容的无状态 bean。这不是一个漂亮的解决方案,但在 Glassfish 中运行良好。

@Stateless那么,当我不在DAO 中使用时,如何强制 Glassfish 调出 EntityManager ?

0 投票
1 回答
3290 浏览

java-ee-6 - 在我的 EJB 调度程序中使用 @RunAs

我的业务方法中有许多 EJB。这些方法使用@RolesAllowed 注解来检查用户是否可以执行该方法。

所以我有一个调用这些 EJB 方法的 EJB 调度程序。EJB 调度程序使用匿名用户运行,因此授权失败。

我如何以其他角色运行我的调度程序?对于测试建议,我使用 @RunAs("SYSTEM") 注释运行,但我不知道这是否正确。

我的调度程序类

我的 EJB 课程

0 投票
3 回答
20842 浏览

dependency-injection - 使用 @Inject 将无状态 EJB 注入 CDI Weld ManagedBean(jboss 6 AS 上的 JSF 1.2 EJB 应用程序)

目前我正在尝试将无状态 EJB 注入到 Jboss 6 AS Final 上的 CDI 托管控制器中。控制器在可从 JSF 页面访问的上下文中进行管理。如果我用它注入无状态bean,@EJB它就可以工作。如果我注入无状态 EJB,@Inject我会得到以下异常:

我的控制器:

我的无状态bean:

Bean 的接口使用@Local 进行注解。

如果我尝试调用 myTestManager 我得到以下异常:

WELD-000079 在 JNDI 中找不到 EJB:类 de.crud.org$jboss$weld$bean-jboss$classloader:id="vfs:$$$usr$local$jboss$server$default$deploy$test$耳朵"-SessionBean-TestManagerBean_$$_WeldProxy

多谢。

0 投票
1 回答
2213 浏览

java - 您是否应该将实体 Bean 用于域模型

由于 Java EE 世界的新改进导致大量设计模式被弃用,DTO 在很大程度上受到了反对。

但是,我不希望数据库的关系结构决定客户端(Web 应用程序)如何使用我的 EJB 中的服务。由于技术的发展方式,我看到在大约 5 年的时间里,随着光纤技术和其他不可思议的技术成为现实,我看到了试图彻底改革 UI 的工作。所以我希望业务逻辑被完全封装,以便我们可以随时轻松更改 UI。

考虑到这种想法,我正在开发一个纯 API 来表示业务模型和服务,以便客户可以使用它。

但是,我不得不一直编写转换器来将实体 bean 转换为这个 API。这是正确的做法还是过度工程。

您的反馈和意见在很大程度上受到欢迎。

注意。该项目使用完整的 Java EE 6 平台

0 投票
2 回答
1141 浏览

java - Hibernate EJB IllegalArgument

我有这个神秘的休眠 ql 异常。它涉及三个类:

其他两个类不相关。我通过一个公共字段加入了两个不相关的类 CustomerLimits 和 DividendUpload customerNumber

现在的问题是它一直给我这个错误。IllegalArgumentException 自然会表明我的构造函数不正确,但它是正确的。事实上这是非常正确的,所以我在这里不知所措。

0 投票
0 回答
162 浏览

java - Jboss 6.0.0.Final 中的可嵌入容器

我正在尝试为 EJB 3.1 会话 bean 开发单元测试,但我找不到任何关于它是否受支持/包含的明确信息。

  • 有没有人成功使用这个?
  • 可嵌入容器需要哪些罐子?
  • 用蚂蚁配置?
0 投票
1 回答
4287 浏览

jboss - JBoss 6 - 在战争包装中部署 ejb

我正在尝试使用新的 EJB3.1 功能,可以在其中部署打包在 .war 文件中的 EJB。

我正在使用 Maven 2.2.1 打包 EJB 模块,然后将 ejb jar 放入 war 模块中(作为依赖项)。最终的战争包含一个没有内容的简单 web.xml,以及 lib 目录中的 ejb jar 库。但是,尽管应用程序已正确部署,但容器无法识别带注释的 ejb (@Stateless)。我没有 ejb-jar.xml 描述符(我相信它在 EJB3 中是可选的)。

如果我自己部署 ejb jar(通过将其放在 JBoss 的部署目录中),它将部署一个分配的 jndi 名称。

我在这里错过了什么吗?