我尝试从位于某个 URL 的网络服务器读取数据。
在我们公司,我使用电子商务 API,它处理来自网络服务器的数据。
首先要检索数据,我需要从网络服务器创建数据池。
要创建数据池,我需要配置连接。
“我需要配置连接”步骤的一部分是函数 getSession(),它使用 Shiro api(org.apache.shiro.SecurityUtils) 所以每次当我尝试与网络服务器建立连接并使用来自Web 服务器我成为一个异常“主线程中的异常”org.apache.shiro.UnavailableSecurityManagerException:调用代码无法访问 SecurityManager,绑定到 org.apache.shiro.util.ThreadContext 或作为 vm 静态单例。这是无效的应用程序配置。”
在写这个问题之前,我试着查看日志并阅读有关类和问题的信息,这些在此处进行了描述。
这一切都在 Windows 10、Java 8、Payara Server(Glassfish) 上运行,带有 EJBAPI 和一些电子商务 API。
导入我使用的
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.InvalidSessionException;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
在
ContentConfiguration conf = new ContentConfiguration(
getSessionId(),
Constant.ENTITYMODELL,
Constant.EMPTY,
context);
protected static Session getSession()
{
Subject subject = SecurityUtils.getSubject();
if(subject.isAuthenticated())
return subject.getSession();
else
return null;
}
错误信息
Exception in thread "main" org.apache.shiro.UnavailableSecurityManagerException: No SecurityManager accessible to the calling code, either bound to the org.apache.shiro.util.ThreadContext or as a vm static singleton. This is an invalid application configuration.
at org.apache.shiro.SecurityUtils.getSecurityManager(SecurityUtils.java:123)
at org.apache.shiro.subject.Subject$Builder.<init>(Subject.java:627)
at org.apache.shiro.SecurityUtils.getSubject(SecurityUtils.java:56)
at de.kolb.demo.data.ServiceLocator.getSessionId(ServiceLocator.java:15)
at de.kolb.demo.logic.CommonTest.getCommonData(CommonTest.java:32)
at de.kolb.demo.presentation.ContentDirector.main(ContentDirector.java:34)
MYYA
相关分类