1. Я пытаюсь прочитать данные с веб-сервера, который находится по какому-то URL.
2. В нашей компании я использую API электронной коммерции, который работает с данными с веб-сервера.
3. Для извлечения данных сначала нужно создать пул данных с веб-сервера.
4.Для создания пула данных мне нужно настроить соединение.
5. Одной из частей на шаге «Мне нужно настроить соединение» является функция getSession (), которая использует API-интерфейс Shiro (org.apache.shiro.SecurityUtils).
поэтому каждый раз, когда я пытаюсь установить соединение с веб-сервером и использовать данные с веб-сервера, я становлюсь исключением «Исключение в потоке» main »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)