问题标签 [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.
spring - 事件上的 Spring 会话 bean 初始化
在我的项目中,我需要 SessionBean 来存储与当前会话关联的对象。在创建会话并且用户通过身份验证时,我想为我的 bean 设置对象。
豆定义:
身份验证侦听器:
}
但是,问题是我无法获取当前 SessionBean 实例的实例。那是我的错误:
我该怎么做?什么事件或监听器会让我用当前用户初始化 SessionBean。
hibernate - 使用@Stateless session bean 在一对多关系中持久化 2 个实体
您好,我正在使用 2 个@Stateless 会话 bean ClientFacade 和 CreditCardFacade,我想使用这个门面来持久化这两个实体,我还想将 Client 与 CreditCard 关联起来。
客户在这里@OneToMany(反方),CreditCard 是@ManyToOne(拥有方)
我已经写了单元测试:
但是这里的问题是客户端和 creditCard 保存在数据库中,并且 creditCard 已将外键设置为客户端,但是当我尝试访问 client.getCreditCards() 时,尽管数据库中存在这种关系,但它为空,尽管我之前一直在刷新客户端实体。如果这是在 RESOURCE_LOCAL 而不是 JTA 中类推的,那么这种方法效果很好。
更新
我以这种方式修改了实体:
和:
现在尝试以与上述类似的方式(没有)刷新我得到这样的异常:
我考虑如何结合使用这种 Facade EJB 以保持关系。如果我使用 EntityTransaction 在单个事务中保持这种关系,那么一切似乎都正确地保持。但是尝试使用 AbstractFacade 模式坚持 EJB @Stateless 失败了。我无法解决这个问题,为什么我可以以这种方式保存它。也许这是因为我有 2 个单独的事务并且它们之间的对象正在分离。
java - 会话 bean 返回错误的值
我在wildfly 8上运行的eclipse项目中实现了以下html页面、servlet类和bean类。
我遇到的问题是每次我用一些值调用 servlet 时,bean 类中的添加操作都会返回零。我知道我没有做正确的微不足道的事情。我应该改变什么才能从添加操作中获得正确的值。
AddServlet.java
添加Ejb.java
索引.html
以下是系统输出日志
jakarta-ee - @Inject 在会话 bean 中的接口
我有一个无状态会话 bean,它确实从库中注入了一个接口。
这接缝工作!但为什么?容器怎么知道要注入什么?
这是允许的和良好的做法吗?
javascript - Javascript将值传递给托管bean
我试图在 userList 的 onchanged 事件之后传递一个值
on change 将调用此函数。我能够获得正确的选定值,但我似乎无法将该值传递给 systemUtil.someString(selectedValue),这是我的托管 bean。当我尝试打印出 someString 方法中的值时,我得到的只是空值。
在跟踪代码之后,似乎这个分配甚至在 onchanged 事件之前就已经完成了。
我究竟做错了什么?
java - 当 LockType.READ 方法被 LockType.Write 方法调用时会发生什么
当在类级别为 LockType READ 的单例容器管理会话 bean 中的 LockType WRITE 方法调用 LockType READ 的同一 bean 中的另一个方法时会发生什么。
使用上面的bean,有这样的实现是否正确?当这个 update() 正在执行并且同时一些其他服务调用 calculate() 时会发生什么?服务会等到 update() 完成还是它还并行执行 calculate()?我相信如果它确实并行执行,它很有可能破坏数据或以数据不匹配告终。
计算方法可以设为私有,并且只能在受 WRITE 保护的方法下使用。这样可以确保不会因为并发请求而出现不匹配。
想知道在上述情况下处理并发请求的影响并遵循正确的方法。
java - 使用 @Lock 注释而不是 synchronized 关键字
应用程序设置(简化)
我觉得我对 Java 中的并发非常熟悉,但我对 Java EE 及其注解还是比较陌生。
我有一个名为DataHandler
annotated with的类@Singleton
,它为我的应用程序执行一些业务逻辑。这个类被注入到一个用@WebService
. 当调用 Web 服务的方法之一时,DataHandler
调用parseFiles()
解析一些文件的方法,并将数据存储在DataHandler
. 之后,它对内部的吸气剂进行了一些调用DataHandler
:
现在我还有一个消息驱动的 bean,它接收关于一个名为 UpdateTopic 的主题的一些数据,然后将其转换为另一种类型并将其存储在DataHandler
:
我想同步parseFiles()
方法、convertAndStore()
方法和两个 getter,以便所有数据在访问时都是最新的。
我简单地做了所有四种方法synchronized
来实现这一点。我的理解是,如果文件正在被解析并且更新进入 MDB,那么该convertAndStore()
方法将被锁定直到parseFiles()
完成。同样,如果正在转换和存储更新,并且 Web 服务正在尝试访问两个地图之一,它会一直等到convertAndStore()
完成。如果我在其中任何一个方面错了,请纠正我。
我的问题
说了这么多,我最近才读到@ConcurrencyManagement
和@Lock
注释。而不是同步这四种方法。现在似乎我应该只注释parseFiles()
and convertAndStore()
,@Lock(LockType.WRITE)
因为它们正在修改 bean 的状态和两个 getter @Lock(LockType.READ)
。
我应该这样做并synchronized
完全避免使用关键字吗?是否有任何用途synchronized
(可能只是用于同步块?),还是这些注释现在取代它?
java - 将 EJB 3 会话 Bean 引用存储到 Map
目前我正在EJB3.0 session beans
我的应用程序中使用。通常我使用jndi name
并调用相关方法查找bean。但最近有人建议我将这些引用存储在 aMap
而不是一次又一次地查找。
这是存储
Session Bean
引用Map
以避免每次查找的好习惯吗?或者它是危险的?如果在所有应用程序中可能会遇到什么样的问题?
如果这是一个好的做法,那么我还有另一个问题。
包含
Map
存储引用的类是模块 Asession beans
的一部分。 而是模块 B1 ...Bn的一部分。因此,当我将参考存储在 中查找后Map
,我可以将其取回。与此同时, 模块 Bn被重新部署,但模块 A 保持原样。所以现在在使用它从 Map (因为它包含条目)查找 bean 之后,ClassCast Exception
被抛出。
这是什么原因,我该如何避免?我正在使用 JBOSS 应用程序服务器 - jboss 5.1.0.GA
java - 使用会话 bean 来保持数据源连接
我在java中制作了一个数据库包装器来连接到数据源。我连接到数据源的方式是使用以下行:
然后我可以开始做类似的查询
是否可以将该 db 对象保存在会话范围的 bean 上,然后从其他请求范围的 bean 访问该对象,这些 bean 是表单控制器?
我认为有比DB
每次请求表单的 bean 时创建一个新实例更好的方法。
我没有使用任何持久性 API。
eclipse - 在 Eclipse 中创建新会话 bean 时无法选择项目名称
在 Eclipse 中为 ejb 项目创建新的会话 bean 时,我似乎无法选择项目名称,因此无法创建会话 bean。
我正在使用 JBoss 7.1、ejb 模块 3.1 和 jdk 1.8。