问题标签 [ejb-3.2]

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 投票
0 回答
316 浏览

java - EJB 拦截器。如果事务未提交,则捕获异常

我有一个 EJB 拦截器,它应该捕获并处理事务中抛出的所有异常:

但是,如果在休眠期间PesistenceException由于违反约束而引发刷新,我将无法捕获此异常。我知道在我的拦截器完成工作后休眠会刷新。但我需要捕获所有异常。

为了实现这一点,我用其他 EJB 装饰了这个 EJB。

它有效,但看起来像解决方法,我不喜欢这个解决方案。所以基本上我需要在事务之外运行拦截器。我怎样才能做到这一点?

0 投票
1 回答
148 浏览

java - NamingException 使用 JNDI 加载 bean

我有两个实现接口的无状态 EJB。要加载我正在使用 InitialContext 的实现,但它总是以NamingException.

界面

第一个实现

和第二个实现

这是根据配置调用实现的代码:

此代码打印:

InitialContext 中的错误:env/app/ejb/login/DBUserValidationImpl -- 服务 jboss.naming.context.java.comp."app-2.0"."app-ejb-2.0".LoginBean.env.app.ejb.login。 DBUserValidationImpl

加载 bean 的正确 JNDI 是什么?不是完整的包路径吗?

我也尝试过,java:module/app/ejb/login/DBUserValidationImpl但遇到了同样的错误。

0 投票
1 回答
261 浏览

infinispan - EAP 7:EJB 状态不在集群模式下的有状态会话 bean 之间复制

我运行了两个 EAP 7.0 实例,都带有standalone-full-ha.xml

一开始是:

另一个有:

两者都以成功开始,我可以看到他们加入了集群频道:

我有一个有状态的会话 bean:

一个 JSF 应用程序范围的 bean:

一个 JSF 会话范围的 bean:

Web.xml:

和 index.xhtml:

现在,当我导航到 localhost:8080/index.xhtml 上的 node1 时,我有一个网页,其中有两个从 1 开始的计数器。每次刷新页面时,它都会计数。

当我在 localhost:8084/index.xhtml 上导航到 node2 时,我希望看到来自 node1 的两个最后递增的值,但是来自 @Stateful bean 的计数器不会在 node1 的值上递增。

示例:导航到 node1:

-> 刷新节点1

-> 刷新节点1

导航到节点2:

-> 刷新节点2

再次刷新node1:

再次刷新node2:

这两个页面独立工作,但是应该复制有状态会话 bean 之间的状态。我不明白为什么它不起作用。@SessionScoped bean 之间的状态总是被复制...

我正在寻找一些文档并找到了这个:

https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.0/html/developing_ejb_applications/clustered_enterprise_javabeans#cluster_topology_communication

在第 8.2 节的末尾有说明:

从 JBoss EAP 7 开始,如果 JBoss EAP 使用 HA 配置文件启动,您的 SFSB 的状态将被复制。

@Stateful bean 是否需要更多配置?

0 投票
2 回答
402 浏览

websphere - 日志中未显示远程 EJB 绑定 - Websphere Liberty

我正在尝试按照红皮书示例(IBM WebSphere Application Server Liberty Profile Guide for Developers,5.2.3 Developing applications using remote EJB)在 Liberty Profile 服务器中调用远程 EJB。

所有编译和部署都没有问题,但在运行时会给出以下错误消息:

有什么问题?本地 EJB 示例工作得很好。

仅在客户端代码中指定远程 EJB 是否足够,或者也必须在其他地方(属性文件或 server.xml)?

只有带有@Local 注解的接口是绑定的,它会显示在日志中。带有@Remote 注释的接口未绑定,也未显示在日志中。

可能是什么错误?

0 投票
3 回答
168 浏览

java - 从生产环境中删除日志

如何实现 log4j 使得一些所需的记录器不会在 PRODUCTION 环境中显示,但会在测试和验收环境中显示。

是否可以仅使用 log4j 来完成?

0 投票
1 回答
64 浏览

hibernate - 如何将本机查询结果分配给 Pojo 类

我在我的项目中使用 JPA 和休眠。

我遇到了一个需要加入 6 个表的查询。结果将给出 20 列。

我的实体类是:

  • 发票帐户
  • 资产协议
  • 资产
  • 订单项
  • 产品协议

  • 产品

我的 pojo 类是 AggregateDetail,它包含我将从本机查询中获得的所有 20 个变量。

有没有办法实现这一点。

0 投票
1 回答
1034 浏览

jakarta-ee - 集成 EJB (JNDI) 和 CDI 的最佳方式

目前我们有一个部署架构,即一堆面向数据的服务通过 RMI 暴露给业务服务。两种类型(面向数据的服务和业务服务)都是无状态会话 bean。每个数据服务接口包(包含远程接口)也有一个定位器,用于进行 JNDI 查找。我们这样做是为了让我们可以从业务服务逻辑中的任何位置调用面向数据的服务。

这是定位器的样子:

我们在 JBOSS EAP6 上运行并开始试验 CDI。因此,我们beans.xml在 data-service-beans 中添加了 a 和@Produces以使(在这种情况下OrganisationAndMandatesRegisterCDI 可注入。想法是未来我们可能会重新打包我们的应用程序并将数据服务与业务服务一起打包在一个企业中档案。

最近我们迁移到 JBOSS EAP7.2(Wildfly 8?),突然间我们看到了各种意想不到的延迟和事务问题。

我怀疑我们获取 bean 的方式是造成这些问题的一个因素。例如:我想范围取决于业务 EJB 生命周期,但是对于locate()业务服务中的每次调用,都会生成一个新的数据服务实例。

那么:使用 CDI 时(通过 RMI)生成远程 bean 的最佳方法是什么?鉴于两种类型的服务都是无状态的(或者这是自动完成的),我是否应该考虑范围界定?

0 投票
5 回答
3302 浏览

hibernate - 如何验证 JPA 实体中的电子邮件字符串

我在数据库中有一个长度为 512 的列。它将包含多个用“;”分隔的电子邮件地址。如何在实体中验证其各自的变量,以便所有电子邮件地址都有效。

列表将不起作用,因为我需要将其保留在列中。这是数据:

0 投票
1 回答
258 浏览

rest - REST API JAXRS 中的 Keycloak 与 CDI 集成

我们有一个 widlfy REST API jaxrs,我们想用 keycloak 保护它。

问题是集成@SecurityDomain("keycloak")仅适用于 EJB 入口点。它在没有@Stateless注释的类上被忽略

问题是入口点变成了 EJB,而 EJB poolManaged 对于无状态应用程序来说并不是一件好事。此外,EJB 中的所有方法都是事务性的,我们不希望这种行为。所以是的,我们可以添加一个事务性注释来指定在方法中不使用事务,但我认为这是一种解决方法。

我们希望尽我们所能与 CDI 合作。同时在wildlfy 20 EJB中具有ejb池管理的入口点可能成为大型应用程序的瓶颈。

任何想法 ?或使用 CDI 实现 keycloak 安全性的正确方法?

0 投票
0 回答
252 浏览

java - JAXRS:通过 POST Web 服务读取 FormParams 数组

我有一个角度客户端,它向我发送了一个对象数组(排序条件):

我的网络服务界面是:

我使用 RESTEasy 作为 jax-rs 实现。

如果参数名称类似于“sort [i] [k]”,我如何读取参数数组?

为什么我不能使用 aMultivaluedHashMap<String,String>作为参数?