首页 > 解决方案 > Swing Client EJB Wildfly - 服务器端的新用户但旧用户上下文

问题描述

我目前正在尝试将应用程序移植到 Wildfly 25。此应用程序的 Swing 客户端提供重新登录。该应用程序工作 - 但是重新登录没有因为我通过新的初始上下文获得相同的服务对象,并且在服务器端会话上下文包含首先使用的用户。

初始上下文是使用如下属性创建的:

                Properties properties = new Properties();
                properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
                properties.put(Context.PROVIDER_URL, "http-remoting://" + getApplicationServerEnvironment().serverHostname + ":8080");
                properties.put(Context.SECURITY_PRINCIPAL, aUsername);
                properties.put(Context.SECURITY_CREDENTIALS, aEncryptedPassword);

然后关闭初始上下文,使用不同的用户和密码创建一个新上下文。但是新的 Initial Context 返回相同的服务对象(与 System.identityHashCode equals 中的相同),并且当使用该服务时,它使用 SessionContext 和第一个(现在是错误的)用户。

因此,我假设 Wildfly 客户端会缓存服务。我该如何防止呢?或者我将如何使用不同的用户上下文重新获得服务?

标签: jbossclientwildfly

解决方案


推荐阅读