问题标签 [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.
java - Java Enterprise 应用程序中的类加载问题
我在 Glassfish 服务器上有带有 EJB3 和 JSF 的企业应用程序。在运行这个应用程序超过 2 周后,我意识到我的类加载有问题。我不认为这是 permgen 的问题。每次打开页面时都会加载这些类,但它们从未从内存中删除。这是我的服务器内存的快照:
所以,我只需要一些关于如何调试这个问题的指示。
java - EJB 和在数据结构(映射、列表等)中存储对象
是否可以在应用服务器正常运行期间将对象存储在数据结构中?基本上我想要一个与此数据结构接口的 EJB,但不需要完整的数据库解决方案。
作为一个例子,我制作了这个虚拟动物对象:
所以这里是EJB 远程接口:
这是会话 Bean:
所以基本上我希望任何想要操作 Animal Map 的客户端都通过这个 EJB 并让每个客户端访问相同的对象 Map。
这个例子不够好。过了一会儿,所有的动物都被删除了(我假设当 EJB 从 bean 池中被替换时)这会以某种方式作为资源注入吗?
java - EJB 定时器和可靠性
无论如何,我需要每 5 秒在 App Server (Glassfish) 中调用一个方法。计时器是否足够可靠?我有什么选择。
java - Java App Server 中的单例......这是一个多么糟糕的想法?
我目前正在研究一些在没有考虑应用服务器的情况下开发的旧 Java 代码。它基本上是一堆带有输入接口和输出接口的“黑盒代码”。“黑匣子”类中的所有内容都是包含状态的静态数据结构,这些状态以定时间隔(每 10 秒)通过算法。黑盒是从一个 main 方法启动的。
为了让我自己轻松,我正在考虑将“黑匣子”设为单例。基本上,任何想要访问黑匣子内部逻辑的人都会得到相同的实例。这将允许我使用消息驱动 bean 作为黑盒的输入,并使用某种 JMS Publisher 作为黑盒的输出。
这是多么糟糕的想法?有小费吗?
不过,我主要担心的问题之一是“黑盒”代码中可能存在我不知道的线程。
EJB 中是否存在诸如“应用程序范围的对象”之类的东西?
注意:我使用的是 Glassfish
java - 在应用服务器中调用远程 Bean 与本地 Bean
与使用本地 Bean 接口相比,使用远程 Bean 接口是否存在明显的性能开销?如果性能差异不大,我希望每个客户端应用程序都连接到远程 bean。
jpa - REQUIRES_NEW 注释方法在没有事务的情况下执行?
我有一个无状态 bean 负责将实体持久化到数据库中。这个无状态 bean 由消息 bean 的 onMessage 方法调用。连线的事情是,在第一条消息上一切正常,但在下一条消息上,负责持久化的方法在事务外部调用,即使该方法使用 REQUIRES_NEW 注释。
调用 refresh 会触发以下异常:
引起:javax.persistence.TransactionRequiredException:没有事务正在进行
有任何想法吗?我对 JTA 还很陌生,所以我可能错过了一些重要的事情?
ejb-3.0 - 使用 JBoss Seam (EJB3+JSF) 的审计日志
我需要为使用 JBoss Seam 编写的 Web 应用程序实现审计日志。EntityListeners 似乎是不错的候选者,但我不知道如何将 EntityListeners 连接到应用程序会话上下文以在审计记录中包含登录使用的主体。
我想知道是否有办法进行这种“连接”,或者是否有一种更舒适/优雅/有效的方式来为这个编程环境实现审计日志。
提前致谢。
拉法。
编辑:
非常感谢达莫的回答!我尝试注入我的身份组件,但没有成功。但是,对 Component.getInstance() 的建议调用确实提供了对 EntityListener 中用户身份的所需引用。
java - Java 代码可以判断它是否在应用服务器中吗?
我可以从 POJO 调用什么来查看代码当前是在 App Server 中还是在 App Server 之外?
像这样的东西(粗略的伪代码):
或者
或者
java - EJB3 - 处理 RollBackExceptions
我有一个 EJB3 应用程序,它包含一些用于访问数据库的 EJB,并通过会话 Bean 作为 Web 服务公开。
现在有两件事我需要找出:
1) 有什么方法可以阻止 SQL 异常导致 Web 服务抛出 SOAP 错误?事务由容器处理,当前 sql 异常会导致引发 RollBackException,因此事务会回滚(期望的行为)并且 Web 服务会引发错误(不期望的)。
2)我希望扩展 web 服务以能够接收实体列表,并且会话 bean 能够持久化。但是,我希望每个实体都在自己的事务中执行,这样如果一个实体失败,其他实体不会受到影响(同样,Web 服务也不应该出错)。
对于 (1) 我试图捕获 RollBackException,但我认为这是在另一个线程的某个地方抛出的,因为永远不会到达 catch 块。我假设(2)我需要研究用户事务,但首先希望容器来管理它,其次不知道如何强制使用用户事务。
谢谢。
jboss - 如何配置JBoss服务的启动顺序(JmsActivation)
当我在 JBoss 5 上部署我的应用程序时,会在启动 QueueService 之前创建 EJB。由于队列尚不可用,消息驱动 bean 的创建现在惨遭失败:
如何配置部署顺序?