问题标签 [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.
java - 在成员实例化中查找 EJB
我有一个问题,将 EJB 的引用保存为非 EJB 类的成员(在 EJB 中用作静态成员)
说我有
因为帮助类不是 EJB,所以我有一个查找方法,称为 int 成员实例化。使用此代码,我在运行时遇到异常 java.lang.NoClassDefFoundError: Could not initialize class on SessionBean 类。
当我将 MyHelper 更改为此时,它起作用了:
想知道为什么第一种方法不起作用...
java - 如何划分 EJB 2 会话 bean
我有一些会话 bean 变得非常复杂,所以我想找到一种方法来划分它们,但我仍然需要将分割的部分视为会话 bean。
jsf-2 - 会话范围的 bean 未存储在用户会话中
我尝试根据BaluC在JSF HTTP Session Login中的回答开发一个简单的身份验证应用程序,但问题是我的会话范围 beanUserManager
没有存储在用户会话中,所以当LoginFilter
检查用户是否登录时,
UserManager userManager=(UserManager)req.getSession().getAttribute("userManager");
它回来了null
!
关于如何解决这个问题的任何想法?
java - 在控制器中执行其他方法之前用数据填充会话 bean
我正在创建一个 Spring 应用程序,其中有一个侧边栏,可用于访问应用程序的模块。
侧栏在应用程序的所有视图中保持可见。我使用 Apache Tiles 创建视图。
由于我不想对 JSP 中的菜单项进行硬编码,因此我想从数据库中填充所需的数据(链接名称、URL 模式)。
我只想这样做一次,所以我的计划是创建一个会话 bean 来将所有这些菜单详细信息放入其中。
我创建了一个名为“MenuDAO”的类,并将其自动连接到控制器。然后我创建一个方法来返回该“MenuDAO”对象,并在我的控制器中将其标记为“ModelAttribute”。
现在我在徘徊在哪里可以用数据填充这个 DAO。我想每个会话执行一次(例如用户登录时)。
我不能在请求映射的方法中做到这一点,因为一旦它被调用,模型属性就已经被注入,所以只有在下次加载页面时,新数据才可用。
我再次想到在使用@PostConstruct 注释的方法中进行操作。但是我需要在每个控制器中都这样做。
所以我想知道我在哪里可以正确地做到这一点,这样我就可以在每个用户会话中填充一次这个bean。
java - 处理具有未知异常类的堆栈跟踪
我正在实现一个抛出ApplicationException
s 的会话 bean。这些异常具有链式堆栈跟踪,其中可能包含其类在客户端上不可用的异常。就像是:
在这里,客户端可能会遇到一个它没有类的异常。这可能导致:
我不希望客户端知道可以在服务器端抛出的所有可能的异常,但是拥有堆栈跟踪永远不会坏。
你如何处理这些问题?Interceptor
当异常被发送回客户端时,实现一个解耦堆栈跟踪的解决方案是否可行?但是Interceptor
应该只处理通过 的调用RemoteInterface
,因为在内部我对整个堆栈跟踪感兴趣。
java - 无状态会话 bean 的 ejb 拦截器,我如何调用有状态会话 bean
类是具有 loginUser 属性的有状态会话 bean。B 类是一个带有 addAUser 方法的无状态会话 bean。当使用 B.addUser 方法时,拦截器如何检查 A.loginUser 是否为空。感谢你 。
java - 春天。在我的 CustomDataSource getConnection 方法中访问会话 Bean
有谁知道如何在 DataSource getConnection 中访问会话范围的 bean?
我决定为每个客户端(多租户)实现一个单独的数据库模式,我发现这篇非常有前途的文章:使用 Spring 和 PostgreSQL的多租户,并且一直在尝试实现它所说的一段时间。
正如您在评论中看到的那样(我和其他人一样被卡住了),因为java.lang.IllegalStateException
. 在最后的评论中还发现了这个问题,您可以在其中看到相同的内容。
作者(gargii)给出的答案是这样的:
错误消息可能很好地描述了您所处的状态。试着想一想。专注于线程。哪个线程获取原始请求?哪个线程因错误而失败?尝试调试 RequestContextHolder 类。这是实际完成会话魔术的地方(使用 ThreadLocal)。
嗯...我尝试调试但没有成功,我已经看到了几十个页面试图解决问题,但仍然没有找到解决方案。
我总是得到这个异常(我在最后复制了完整的跟踪):
简而言之,这就是我所拥有的:
在其他任何事情之前执行的安全过滤器(applicationContext-Security.xml):
过滤器是:
应用程序上下文.xml:
TenantContext 有:
(注意它不是 RooEntity 或 RooActiveRecord。我只是使用 @RooJavaBean 和 @RooToString 来自动创建 setter、getter 和 toString)
在 web.xml 中进行强制配置:
和 applicationContext.xml:
还有:
此类在 applicationContext.xml 中配置:
如果我
@Autowired
从“TenantAwareDataSource”显示的代码中删除,它不会给我异常,但实际上并没有工作。哈哈哈。tenantContext 始终为空,因为它不再是会话 bean。
顺便一提。此应用程序是使用以下版本 (pom.xml) 创建的:
最后,完整的例外是:
singleton - EJB:单例会话 bean 或更类似于应用程序 bean
我再次浏览 Javaee7 oracle 文档,这就是所说的。
“一个单例会话 bean 为每个应用程序实例化一次,并且在应用程序的生命周期中存在。单例会话 bean 设计用于单个企业 bean 实例在客户端之间共享和并发访问的情况。”
我完全理解它在说什么。但是仔细想想,会话这个词在这里非常具有误导性。由于它存在于应用程序级别,因此术语“会话”似乎不适用于此处。
当我想到“会话”这个词时,我认为每个单独的用户都是一个会话。如果该单例会话 bean 用于跨应用程序,那么它不应该被称为会话 bean(相反,可能会更好地理解应用程序 bean)。
有什么意见吗?
java - EJB 本地包括远程
假设我们正在使用 EJB3,并且我们的会话 bean 使用/实现本地接口 L 和远程接口 R。
我的问题 1:
本地客户端也可以使用remoteMethod吗?
我的问题 2:
用远程接口扩展本地接口是一种好习惯吗?
java - HttpSession-s 之间共享的 Spring 会话 bean
我试图理解 Spring 中的会话 bean。我正在阅读的那本书说,关于他们:
bean 在需要时创建并存储在 javax.servlet.http.HttpSession 中。当会话被销毁时,bean 实例也被销毁。
我尝试了以下示例:
豆子:
豆定义:
控制器:
这是 Tomcat 启动时发生的情况:
我认为 Spring 需要这个实例来创建 CGLIB 代理。无论如何,我不确定。
启动后,我用两个不同的浏览器有两个不同的HttpSession。调用控制器时的结果是:
购物车实例似乎在 HttpSession-s 之间共享,但我期待有两个购物车实例。
如果我让 bean 实现一个接口,使用注释驱动的方法和组件扫描,也是一样的:
--
我错过了什么吗?我误解了会话bean的含义吗?