问题标签 [stateless-session-bean]

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 回答
1556 浏览

java - ejb2 无状态会话 bean 中的同步块

到目前为止,我听说不建议将同步用于 ejb 会话 bean。

我有一个问题,我通过使用同步解决了。

我使用同步的代码。

检查我用来synchronized(pinGenerateSessionBean)同步 pingeneration 会话 bean 对象的行。

它工作正常。在此之前,当我尝试同时生成两个批次时遇到问题。

它会产生任何问题吗?性能对我来说不是问题。

0 投票
1 回答
2171 浏览

jsf-2 - 未在 JSF @ViewScoped @Stateless bean 上启动事务

我有一个基于 JSF 2@ViewScoped的 webapp,我无法正确处理事务,或者更确切地说:它们根本没有启动

我也在使用 Java EE 6 的 CDI 和 EJB3。

这是主要的bean:

从 JSF 页面使用视图范围的 bean 来显示数据表中的简单列表。它是视图范围的,因为它具有基于 AJAX 的操作来添加项目、删除项目以及通过 RichFaces 对它们进行排序(过滤)。

@Stateless为每个方法调用添加了启动事务(如果不存在,则创建一个新事务,默认为TransactionAttributeType.REQUIRED)。这个想法取自“Core JavaServer Faces, 3rd ed.”一书,但是我没有找到任何与我自己相匹配的示例。

注入的 PqService 类(使用它没有区别@EJB):

JpaCrudService(基本上取自 Adam Bien 的示例http://www.adam-bien.com/roller/abien/entry/generic_crud_service_aka_dao):

唯一的区别是我子类化JpaCrudService,因为我不喜欢存储在实体中/实体处的查询。所以我省略了@Local注释(如果错了,请纠正我)。@Stateless不是继承的AFAIK,我只注入子类,所以我也评论了那个。

也就是说,然后从 JSF 页面访问 bean:

但是,在加载页面时,出现异常:

它失败是因为调用pqService.findActivePqsFor()不在现有事务中运行(TransactionAttributeType.MANDATORY继承AFAIK)。

TransactionAttributeType.MANDATORY请注意,通过删除和使用扩展实体管理器,在不使用事务的情况下正确显示页面JpaCrudService,但这仅用于测试目的。

但是为什么这不起作用?为什么这里没有开始交易?JSF @ViewScopedbean 有什么问题吗?不相容?

你如何修复这个?

PS:我使用的是 JBoss AS 7.1.1。

0 投票
1 回答
302 浏览

singleton - EJB-@Singleton 管理查询结果

我应该使用 EJB-@Singleton (javax.ejb.Singleton) 进行统计或监视,还是将统计信息缓存在公共 @SessionScoped-Bean 中会更好?为了澄清我的问题,这里有两种情况:

情景一:

用户开始 Web 会话并进行数据库查询以查看统计信息或数据表。这些查询在其会话中完成。因此,10.000 个用户将进行 10.000 个相等的数据库查询。

场景二:

用户开始 Web 会话并从预初始化的 @Singleton-Bean 重试统计数据或数据表的数据。@Singleton (javax.ejb.Singleton) 在服务器启动 (@Startup) 的开头进行了查询。因此,10.000 个用户可以从 ONE 缓存 (@Singleton) 中读取数据,而不必查询数据库。如果其他人创建/编辑/删除数据,我的 @Singleton-Bean 会触发其缓存数据的刷新。

所以我的问题是:

  • 场景 II 的扩展性是否比场景 I 更好?我猜是。我对吗?
  • 还有其他注意事项或需要考虑的事情吗?
  • 我知道,Stateless-Beans 比@stateful 或@Singleton 扩展得多。我是否应该考虑使用@Stateless-Bean 并使用 JPA/Hibernate 缓存之类的东西缓存查询。
  • 我应该使用@ApplicationScoped (javax.enterprise.context) 而不是@Singleton (javax.ejb.Singleton) 来使用代理吗?会更好吗?
0 投票
2 回答
713 浏览

java - 有状态会话 bean 与无状态会话 bean,实例变量困境

我有一个无状态会话 bean,但我想添加对另一个 bean 的引用以执行某些过程。因此,如果我添加对另一个 bean 的引用,它会显示在这样的实例级别变量中,

问题

现在,根据定义,无状态 bean 不应该有任何实例级变量。所以我很困惑把这个放在哪里private BillerFacadeRemote billerFacade;

0 投票
1 回答
243 浏览

java - 我可以将会话 bean 与另一个注入的类一起使用吗?

我有一个由消息驱动 bean 和几个会话 bean 组成的应用程序。其中之一有一个 DAO 对象,负责访问数据库或 FTP 服务器。

我需要有两个应用程序。它们之间的唯一区别是 DAO 类的实例。我可以在部署阶段指定该实例吗?

我的目的是避免代码重复。

0 投票
1 回答
1173 浏览

java - 如何避免无状态会话 Bean 中的并发?

我有一个 SLSB,它增加实体中的数字。如果两个线程同时到达 SLSB,我会在两个请求中得到相同的数字。

SLSB 提取物

实体提取

为了测试这个问题,我[BP]在 SLSB recoverName 方法中用 标记的行设置了一个断点。然后从两个分开的浏览器页面进行两次调用。在断点处,两个调用的值相同

当第二个调用尝试使用 setter 修改值时,不应该抛出某种异常吗?

我使用 JBoss 5 作为 AS,使用 MySql 或 Oracle 作为 DB(两者都试过)

谢谢您的帮助

0 投票
4 回答
1394 浏览

java - GlassFish 如何将客户端请求映射到会话

使用 EJB (3.x),您可以选择会话 Bean:@Stateful@Stateless. 如果我了解这两个选项背后的基础知识:

  • @Stateful- 每个用户/客户都有自己的,因此通常不会被汇集;跨多个请求维护状态
  • @Stateless- 不维护请求之间的状态,因此通常是池化的,因此每个新的客户端请求都会获得一个新的 bean

我的核心问题很简单,但是我有几个与之相关的小问题:我的 POJO 设计在@Statefulbeans 与. 之间有何不同@Stateless换句话说,如果我有一个HelloWorld实现Hello接口的 bean,那么 POJO 的设计如何根据我是否希望它是有状态的而改变?

与此相切:

  • 应用程序容器(在我的情况下为 GlassFish)对 EJB 施加了哪些不同的限制,具体取决于它是否有状态?
  • 在 的情况下@Stateful,来自同一用户/客户端的客户端请求如何映射到正确的 bean(从前一个请求维护客户端状态的 bean)?
  • 会话 bean 什么时候死?我假设它在请求完成后立即@Stateless,但没有任何线索@Stateful

在此先感谢您的澄清。

0 投票
3 回答
9749 浏览

java - Java EE 6:如何从无状态会话 Bean 调用有状态会话 Bean?

我有一个作为身份验证模块的有状态会话 Bean (SFSB)。在 SFSB 中,我存储当前登录的用户。此外,我有一些外观(它们是无状态会话 Bean (SLSB))来处理我的实体的 JPA/SQL 内容。为了检查当前用户的访问权限,我尝试从 SLSB 中调用 SFSB。但是从 SLSB 调用时,当前用户字段始终为“空”。直接调用 SFSB 时,当前用户字段设置正确......对于调用,我使用 @EJB 注释。

任何想法可能是什么问题?这在某种程度上是一个上下文问题吗?通常可以从 SLSB 调用 SFSB 来保留它的状态吗?

提前谢谢了!

0 投票
1 回答
2268 浏览

web-services - 将 Web 服务公开为无状态会话 bean 的任何线程安全优势?

将 Web 服务公开为无状态会话 bean 是否有任何与线程安全相关的好处?
(如果我错了,请纠正我)但我认为 Web 服务不是线程安全的,并且像 Servlet 一样,只有一个 Web 服务类的实例是由服务器创建的(不是每个请求一个实例)。

我不知道它们是否是从无状态 bean 的 bean 池中分配的 - 由应用程序服务器分配。我正在尝试查找是否将 @Stateless 注释与已使用 @WebService 注释注释的 Web 服务一起使用,这将强制应用服务器开始为每个传入请求从池中分配它们。这样我就确定我将为每个传入请求创建一个单独的实例?

0 投票
1 回答
3182 浏览

serialization - EJB。当我使用 var List 调用会话 Bean 时,抛出:this javax.ejb.EJBException: java.rmi.MarshalException

我在 netbeans 中创建了一个 java web 项目,我创建了我的实体 bean,然后部署了我的项目来生成我的数据库,这项工作是成功的。

然后我生成了会话 bean 来访问创建的数据库。我创建了一个主类来测试会话 bean,当我测试通过会话 bean 接口调用的方法“find”时,我注意到一些类抛出异常,并且我注意到带有 vars List 的实体类抛出好像它们无法序列化的异常。

我想给我带来实体列表是一个请求。

我在同一个项目中拥有实体 bean,该项目具有我的会话 bean,在 Web 应用程序中......

我使用 Glass Fish 3.1.2
Netbeans 7.1.2
EclipseLink 2.0

实体持久性是:

主类是:

GetBean 是实用程序类,是:

}

坚持单位:

例外是: