Я получаю исключение при получении всех записей в таблице в БД.
Ошибка, которую я получил:
org.hibernate.HibernateException: collection is not associated with any session
at org.hibernate.collection.internal.AbstractPersistentCollection.forceInitialization(AbstractPersistentCollection.java:678) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
at org.hibernate.engine.internal.StatefulPersistenceContext.initializeNonLazyCollections(StatefulPersistenceContext.java:893) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:360) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
at org.hibernate.loader.Loader.doList(Loader.java:2554) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
at org.hibernate.loader.Loader.doList(Loader.java:2540) ~[hibernate-core-4.3.8.Final.jar:4.3.8.Final]
Что меня шокирует, так это то, что я не получаю эту ошибку во время тестирования, но она возникает в производственной среде, которая ставит меня в тупик!!
Может ли кто-нибудь здесь помочь мне разобраться в этом странном поведении??
Это как-то связано с размером таблицы??
public BillingService getBillingCodeByCode(String code){
List list = billingServiceDao.findBillingCodesByCode( code,"BC");
if(list == null || list.size() ==0 ){
return null;
}
return (BillingService) list.get(0);
}
The billingServiceDao
is initialized by Spring
container:
private static BillingServiceDao billingServiceDao =
(BillingServiceDao) SpringUtils.getBean("billingServiceDao");
public List<BillingService> findBillingCodesByCode(String code, String region) {
Query query = entityManager.createQuery("select bs from....");
query.setParameter("code", code + "%");
query.setParameter("region", region);
@SuppressWarnings("unchecked")
List<BillingService> list = query.getResultList();
return list;
}
The culprit is query.getResultList();
but I’m from other universe (. Net) and don’t know the remedy for the problem.
Please help me help my friend solve this problem.
EDIT:- Stack Trace
SEVERE: Servlet.service() for servlet action threw exception
org.hibernate. HibernateException: collection is not associated with any session
at org.hibernate.collection. AbstractPersistentCollection.forceInitialization(AbstractPersistentCollection.java:449)
at org.hibernate.engine. StatefulPersistenceContext.initializeNonLazyCollections(StatefulPersistenceContext.java:797)
at org.hibernate.loader. Loader.doQueryAndInitializeNonLazyCollections(Loader.java:241)
at org.hibernate.loader. Loader.doList(Loader.java:2220)
at org.hibernate.loader. Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader. Loader.list(Loader.java:2099)
at org.hibernate.loader.hql. QueryLoader.list(QueryLoader.java:378)
at org.hibernate.hql.ast. QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at org.hibernate.engine.query. HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl. SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl. QueryImpl.list(QueryImpl.java:79)
at org.hibernate.ejb. QueryImpl.getResultList(QueryImpl.java:66)
at org.oscarehr.common.dao. BillingServiceDao.findBillingCodesByCode(BillingServiceDao.java:47)
at org.oscarehr.common.dao. BillingServiceDao$FastClassByCGLIB$f613fb7e.invoke()
at net.sf.cglib.proxy. MethodProxy.invoke(MethodProxy.java:191)
Вернуться в основную статью
Для облегчения поиска ошибок был создан отдельный раздел для сбора ошибок из АРМ ЭЛН, читайте внимательнее подсказки ниже:
Для поиска по статье нажмите Ctrl+F и введите первые символы кода ошибки или вопроса
В случае возникновения ошибки «ERR_SIGN Некорректная подпись головной организации: Ошибка при проверке сертификата. V ALID_SIGNATURE ЭП действительна; При проверке сертификата ЭП произошла ошибка. Не удалось найти/получить доступ к списки отозванных сертификатов УЦ. Обратитесь в службу поддержки ФСС
Кликнуть правой кнопкой мыши по нему — Установить список отзыва
В случае возникновения ошибки при установке или обновлении программы «GostCryptography.dll Этому файлу не сопоставлена программа для выполнения этого действия»
Необходимо обновить систему и выполнить команды в командной строке от имени администратора:
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
После этого необходимо перезагрузиться
Подробнее вы можете прочитать здесь
В случае возникновения «Internal Error COMCryptoAPIClient»
:
В командной строке CMD выполнить (с правами администратора):
cd C:\FssTools
— для 32 бита:
C:\Windows\Microsoft. NET\Framework\v4.0.30319\RegAsm.exe /registered C:\FssTools\GostCryptography.dll
— для 64 бита:
C:\Windows\Microsoft. NET\Framework64\v4.0.30319\RegAsm.exe /registered C:\FssTools\GostCryptography.dll
В случае возникновения ошибки «Сообщение не соответствует формату XML Encryption»
В меню Администрирование – Настройки сервисов ФСС – Строка соединения укажите следующий адрес сервиса:
https://eln.fss.ru/WSLnCryptoV20/FileOperationsLnService?WSDL
Далее в меню Администрирование – Настройка подписей для сервисов установите галку «Шифровать сообщение». После этого Вам необходимо указать Имя сертификата ФСС и Тип контейнера.
В случае возникновения ошибки «Software caused connection abort: recv failed»
Обычно данная ошибка возникает при бездействии. Когда сервер автоматически закрывает соединение через некоторое время, а клиент получает данную ошибку в ответ на запрос
В иных случаях соединение может прерываться из-за перезапуска СУБД на сервере, когда клиент пытается запрашивать данные по уже несуществующим соединениям
В случае возникновения ошибки «HibernateException: Collection is not associated with any session
Пароль для пользователя Postgres — Manager1
и на схеме public выполнить запрос:
WITH t AS ( SELECT ln_code, COUNT FROM public.fc_eln_data_history GROUP BY ln_code HAVING COUNT > 1) SELECT * FROM public.fc_eln_data_history WHERE ln_code IN (SELECT ln_code FROM t);
Этот запрос выведет строки с одинаковыми номерами ЭЛН. Затем необходимо будет удалить ошибочную строку:
delete from public.fc_eln_data_history where id = ‘ваш id неверной строки’;
Если данный способ не работает и после обновления ПО ошибка повторяется
Необходимо выполнить запрос:
ALTER TABLE public.fc_eln_data_history ADD CONSTRAINT unique_lncode UNIQUE (ln_code);
Это ограничение запрещает создавать в таблице public.fc_eln_data_history строки с одинаковым значением ln_code
В случае возникновения ошибки «В базе данных АРМ ЛПУ имеется некорректная запись» (Transaction already active)
Данная ошибка возникает в случае, когда в какой либо таблице БД приложения сохранены некорректные записи
Для исправления нужно удалить из БД приложения неверную строку (такие записи можно удалить только вручную).
В интерфейсе клиента открывается сервер PostgreSQL 9.5. Затем открывается схема fss (пользователь fss, пароль fss) – Схемы – public – Таблицы.
Данные в АРМ ЛПУ хранятся в таблицах:
fc_eln_data_history — данные листков нетрудоспособнсти;
fc_eln_periods — сведения о периодах нетрудоспособности;
ref_ln_numbers — список запрошенных номеров ЭЛН.
Для просмотра таблицы необходимо выделить ее в дереве таблиц и нажать на значок «Просмотр данных в выбранном объекте»
Выделяете и удаляете (delete) строку, которая содержит пустое значение номера ЭЛН или другие ошибки.
Как вариант, для поиска и удаления ошибочных записей возможно использование SQL запроса типа:
select id from fc_eln_data_history where ln_code is null;
delete from fc_eln_data_history where id = ваш id;
Для открытия окна SQL запросов необходимо в главном меню нажать на значок «SQL».
Обратите внимание! При удалении строки ЭЛН, если в этом ЭЛН были созданы периоды нетрудоспособности, сначала необходимо удалить их. Периоды нетрудоспособности хранятся в отдельной таблице fc_eln_periods и связаны с fc_eln_data_history по номеру ЭЛН. Просмотр и удаление периодов аналогично, описанному выше.
В случае возникновения ошибки «Unable to acquire JDBC Connection»
Проблема связана с неработоспособностью сервисов ФСС, необходимо ожидать восстановления
В случае возникновения ошибки «Ошибка вызова сервиса передачи/получения данных. Л ПУ НЕ НАЙДЕН В СПРАВОЧНИКЕ»
Необходимо взять документы и лицензии МО, обратиться (подойти на приём) в территориальный орган Фонда по месту осуществления деятельности. Сотрудники ТОФ внесут МО в соответствующие справочники, после чего МО сможет формировать ЭЛН.
В случае возникновения ошибки «Ошибка вызова сервиса передачи/получения данных. Unmarchalling error: cvc-complex-type.2.4.a: Invalid content was found starting with element»
Для устранения ошибки необходимо снять галочку с постановки на учёт в ранние сроки Также необходимо обновить программу.
В случае возникновения ошибки «Ошибка при проверке сертификата. V ALID_SIGNATURE ЭП действительна; При проверке сертификата ЭП произошла ошибка. Ошибка построения цепочки сертификатов. Не найден сертификат Удостоверяющего центра, указанный в сертификате пользователя
Необходимо переустановить ВСЮ цепочку сертификатов уполномоченного лица ФСС
В случае возникновения ошибки «ЭЛН с номером, указанным в поле «Продолжение ЭЛН» не закрыт»
Необходимо
закрыть предыдущий ЭЛН – невозможно отправить на сервис ЭЛН-продолжение, не
закрыв при этом предыдущий ЭЛН
В случае возникновения ошибки «Значение поля (групп полей) отличается от существующего значения»
Ошибка сообщает что невозможно внести изменения в ранее успешно отправленные данные ЭЛН. Понятие
«Группа полей» подразумевает некую неделимую целостность полей в ЭЛН,
например, если при открытии ЭЛН были успешно отправлены значения «Фамилия» и
«Имя», при продлении в эту группу полей невозможно будет добавить «Отчество».
Также невозможно исправить или дополнить ранее отправленные данные по периоду
нетрудоспособности, например, в ранее отправленный период добавить подпись
Председателя ВК;
В случае возникновения ошибки «Направленные данные ЭЛН уже присутствуют в системе»
Вы пытаетесь отправить данные, которые уже присутствуют в системе
В случае возникновения ошибки при запуске программы «Invalid Configuration Location» The configuration area at . could not be created. Please choose a writable location using the ‘-configuration’ command line option
Пользователю недостаточно места для создания и хранения временных файлов, создаваемых программой.
Проверьте квотирование места на диске: уберите квотирование либо увеличьте доступное пользователю пространство,
В случае возникновения ошибки «Количество новых периодов не должно превышать 1»
Ошибка говорит о том, что вы пытаетесь отправить несколько периодов. За один раз можно
отправить только один период нетрудоспособности
Всем, кому понравился или помог это проект — Вы можете помочь ему развиваться материально:
Donate (помощь проекту)
Here’s the point: I want to load «DeliveryOrderEntity» (code below) from DB (MySQL). It has 1 foreign key with «one-to-many» relationship. It connects «BillsEntity» using billNumber
. To make it clear — I have table ORDER
with column BILL_NUMBER
and table BILL
with columns BILL_ID
(primary key) and BILL_NUMBER
(column, that connects BILL
with ORDER
).
Here is my code:
@Entity
@Table(name = "DELIVERY_ORDER", schema = "", catalog = "kursach")
@NamedQueries(value = {
@NamedQuery(name = "findAllOrders", query = "from DeliveryOrderEntity"),
@NamedQuery(name = "getOrder", query = "from DeliveryOrderEntity where orderId=:orderId"),
@NamedQuery(name = "removeOrder", query = "delete from DeliveryOrderEntity where orderId=:orderId")
})
public class DeliveryOrderEntity implements Serializable{
private int orderId;
private Timestamp orderDate;
private String orderName;
private String orderTelephone;
private Integer billNumber;
private Integer regionId;
private List<BillEntity> listBill;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ORDER_ID")
public int getOrderId() {
return orderId;
}
public void setOrderId(int orderId) {
this.orderId = orderId;
}
@Basic
@Column(name = "ORDER_DATE")
public Timestamp getOrderDate() {
return orderDate;
}
public void setOrderDate(Timestamp orderDate) {
this.orderDate = orderDate;
}
@Basic
@Column(name = "ORDER_NAME")
public String getOrderName() {
return orderName;
}
public void setOrderName(String orderName) {
this.orderName = orderName;
}
@Basic
@Column(name = "ORDER_TELEPHONE")
public String getOrderTelephone() {
return orderTelephone;
}
public void setOrderTelephone(String orderTelephone) {
this.orderTelephone = orderTelephone;
}
@Basic
@Column(name = "BILL_NUMBER")
public Integer getBillNumber() {
return billNumber;
}
public void setBillNumber(Integer billNumber) {
this.billNumber = billNumber;
}
@Basic
@Column(name = "REGION_ID")
public Integer getRegionId() {
return regionId;
}
public void setRegionId(Integer regionNumber) {
this.regionId = regionNumber;
}
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
@Fetch(FetchMode.JOIN)
@JoinColumn(name = "BILL_NUMBER", referencedColumnName = "BILL_NUMBER", nullable = false, insertable = false, updatable = false)
public List<BillEntity> getListBill() {
return listBill;
}
public void setListBill(List<BillEntity> listBill) {
this.listBill = listBill;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DeliveryOrderEntity entity = (DeliveryOrderEntity) o;
if (orderId != entity.orderId) return false;
if (orderDate != null ? !orderDate.equals(entity.orderDate) : entity.orderDate != null) return false;
if (orderName != null ? !orderName.equals(entity.orderName) : entity.orderName != null) return false;
if (orderTelephone != null ? !orderTelephone.equals(entity.orderTelephone) : entity.orderTelephone != null)
return false;
if (billNumber != null ? !billNumber.equals(entity.billNumber) : entity.billNumber != null) return false;
return !(regionId != null ? !regionId.equals(entity.regionId) : entity.regionId != null);
}
@Override
public int hashCode() {
int result = orderId;
result = 31 * result + (orderDate != null ? orderDate.hashCode() : 0);
result = 31 * result + (orderName != null ? orderName.hashCode() : 0);
result = 31 * result + (orderTelephone != null ? orderTelephone.hashCode() : 0);
result = 31 * result + (billNumber != null ? billNumber.hashCode() : 0);
return result;
}
}
@Entity
@Table(name = "BILL")
@NamedQueries({
@NamedQuery(name = "findAllBills", query = "from BillEntity"),
@NamedQuery(name = "findAllBillIds", query = "select billNumber from BillEntity group by billNumber"),
@NamedQuery(name = "findAllBillsById", query = "from BillEntity where billNumber=:billNumber")
})
public class BillEntity implements Serializable {
private int billId;
private Integer billNumber;
private Integer goodCount;
private Integer goodId;
private Integer billStatus;
private GoodsEntity good;
@Id
@Column(name = "BILL_ID")
public int getBillId() {
return billId;
}
public void setBillId(int billId) {
this.billId = billId;
}
@Basic
@Column(name = "BILL_NUMBER", updatable = false, insertable = false)
public Integer getBillNumber() {
return billNumber;
}
public void setBillNumber(Integer billNumber) {
this.billNumber = billNumber;
}
@Basic
@Column(name = "GOOD_COUNT")
public Integer getGoodCount() {
return goodCount;
}
public void setGoodCount(Integer goodCount) {
this.goodCount = goodCount;
}
@Basic
@Column(name = "BILL_STATUS")
public Integer getBillStatus() {
return billStatus;
}
@Basic
@Column(name = "GOOD_ID")
public Integer getGoodId() {
return goodId;
}
public void setGoodId(Integer goodId) {
this.goodId = goodId;
}
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "GOOD_ID", referencedColumnName = "GOOD_ID", nullable = false, insertable = false, updatable = false)
public GoodsEntity getGood() {
return good;
}
public void setGood(GoodsEntity good) {
this.good = good;
}
public void setBillStatus(Integer billStatus) {
this.billStatus = billStatus;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
BillEntity that = (BillEntity) o;
if (billId != that.billId) return false;
if (billNumber != null ? !billNumber.equals(that.billNumber) : that.billNumber != null) return false;
if (goodCount != null ? !goodCount.equals(that.goodCount) : that.goodCount != null) return false;
if (goodId != null ? !goodId.equals(that.goodId) : that.goodId != null) return false;
return !(billStatus != null ? !billStatus.equals(that.billStatus) : that.billStatus != null);
}
@Override
public int hashCode() {
int result = billId;
result = 31 * result + (billNumber != null ? billNumber.hashCode() : 0);
result = 31 * result + (goodCount != null ? goodCount.hashCode() : 0);
result = 31 * result + (goodId != null ? goodId.hashCode() : 0);
result = 31 * result + (billStatus != null ? billStatus.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "BillEntity{" +
"billId=" + billId +
", billNumber=" + billNumber +
", goodCount=" + goodCount +
", billStatus=" + billStatus +
", good=" + good +
'}';
}
}
As you can see, I have unidirectional OneToMany relationship. The problem is that when i have 2 rows in DELIVERY_ORDER table with the same BILL_NUMBER and I try to get list of orders — it fails with:
Caused by: org.hibernate.HibernateException: collection is not associated with any session
at org.hibernate.collection.internal.AbstractPersistentCollection.forceInitialization(AbstractPersistentCollection.java:676)
at org.hibernate.engine.internal.StatefulPersistenceContext.initializeNonLazyCollections(StatefulPersistenceContext.java:1030)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:346)
at org.hibernate.loader.Loader.doList(Loader.java:2522)
at org.hibernate.loader.Loader.doList(Loader.java:2508)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2338)
at org.hibernate.loader.Loader.list(Loader.java:2333)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1269)
at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:264)
Here is the code where i fetch the list:
public List<DeliveryOrderEntity> listOrders() {
List findAllOrders = new ArrayList();
EntityManager entityManager = transactionManager.getEntityManagerFactory().createEntityManager();
try {
entityManager.getTransaction().begin();
findAllOrders = entityManager.createNamedQuery("findAllOrders").getResultList();
} catch (Exception e) {
e.printStackTrace();
} finally {
entityManager.getTransaction().commit();
}
return findAllOrders;
}
Thank you in advance.
Я нашел несколько вопросов и ответов по этому вопросу о SO, но все они, похоже, охватывают одну из основных причин проблемы: получение коллекции за пределами транзакции или в рамках другой транзакции. Но в моем случае, я получаю в рамках одной и той же транзакции при получении родительского объекта и коллекции.
@Service
@Transactional
public class IntegrationServiceImpl implements IntegrationService {
@Override
public Integration getIntegrationByIdFetchBackendParameters(Long integrationId) {
Integration integration = integrationDao.get(integrationId);
//not all integrations have to have backend.
if (integration.getBackend() != null) {
Hibernate.initialize(integration.getBackend().getBackendParameters());
}
return integration;
}
...
Но когда дело доходит до Hibernate.initialize этой ветки в org.hibernate.collection.internal. AbstractPersistentCollection выполняется
if ( session == null ) {
throw new HibernateException( "collection is not associated with any session" );
}
Я не могу понять, почему session
равен null
. Кто-нибудь объяснит это и предложит решение?
РЕДАКТИРОВАНИЕ 1 — Полная трассировка стека
org.hibernate. HibernateException: коллекция не связана ни с одним сеансом
в org.hibernate.collection.internal. AbstractPersistentCollection.forceInitialization(AbstractPersistentCollection.java:676)
в org.hibernate. Hibernate.initialize(Hibernate.java:77)
на сайте com.dhl.finFw.service. IntegrationServiceImpl.getIntegrationByIdFetchBackendParameters(IntegrationServiceImpl.java:169)
на сайте com.dhl.finFw.web.integration. IntegrationOverviewManagedBean.loadIntegration(IntegrationOverviewManagedBean.java:59)
на сайте com.dhl.finFw.web.integration. AbstractIntegrationManagedBean.initCommonFields(AbstractIntegrationManagedBean.java:69)
на солнце.отражать. NativeMethodAccessorImpl.invoke0 (собственный метод)
на солнце.отражать. NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
на солнце.отражать. DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
на java.lang.reflect. Method.invoke(Method.java:606)
в org.springframework.beans.factory.annotation. InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:344)
в org.springframework.beans.factory.annotation. InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:295)
в org.springframework.beans.factory.annotation. InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:130)
на странице org.springframework.beans.factory.support. AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:399)
на странице org.springframework.beans.factory.support. AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1481)
на странице org.springframework.beans.factory.support. AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
на странице org.springframework.beans.factory.support. AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
на странице org.springframework.beans.factory.support. AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:333)
на com.dhl.finFw.spring.scope. ViewScope.get(ViewScope.java:30)
на странице org.springframework.beans.factory.support. AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:329)
на странице org.springframework.beans.factory.support. AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
на странице org.springframework.context.support. AbstractApplicationContext.getBean(AbstractApplicationContext.java:1117)
по адресу org.springframework.beans.factory.access.el. SpringBeanELResolver.getValue(SpringBeanELResolver.java:56)
на сайте com.sun.faces.el. DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
на сайте com.sun.faces.el. DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
на org.apache.el.parser. AstIdentifier.getValue(AstIdentifier.java:72)
на org.apache.el. ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
на сайте com.sun.faces.facelets.el. TagValueExpression.getValue(TagValueExpression.java:109)
на org.apache.el.parser. AstIdentifier.getValue(AstIdentifier.java:68)
на org.apache.el.parser. AstValue.getValue(AstValue.java:161)
на org.apache.el. ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
на сайте com.sun.faces.facelets.el. TagValueExpression.getValue(TagValueExpression.java:109)
на com.sun.faces.facelets.tag.jstl.core. ForEachHandler.apply(ForEachHandler.java:161)
на javax.faces.view.facelets. CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
по адресу com.sun.faces.facelets.tag.ui. CompositionHandler.apply(CompositionHandler.java:166)
на com.sun.faces.facelets.compiler. NamespaceHandler.apply(NamespaceHandler.java:93)
на com.sun.faces.facelets.compiler. EncodingHandler.apply(EncodingHandler.java:87)
на сайте com.sun.faces.facelets.impl. DefaultFacelet.include(DefaultFacelet.java:320)
на сайте com.sun.faces.facelets.impl. DefaultFacelet.include(DefaultFacelet.java:379)
на сайте com.sun.faces.facelets.impl. DefaultFacelet.include(DefaultFacelet.java:358)
на сайте com.sun.faces.facelets.impl. DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:199)
по адресу com.sun.faces.facelets.tag.ui. IncludeHandler.apply(IncludeHandler.java:120)
на javax.faces.view.facelets. CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
по адресу com.sun.faces.facelets.tag.ui. DefineHandler.applyDefinition(DefineHandler.java:106)
по адресу com.sun.faces.facelets.tag.ui. CompositionHandler.apply(CompositionHandler.java:178)
на сайте com.sun.faces.facelets.impl. DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:395)
на сайте com.sun.faces.facelets.impl. DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:366)
по адресу com.sun.faces.facelets.tag.ui. InsertHandler.apply(InsertHandler.java:111)
на javax.faces.view.facelets. CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
на javax.faces.view.facelets. DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
на com.sun.faces.facelets.tag.jsf. ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:187)
на javax.faces.view.facelets. DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
на javax.faces.view.facelets. CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
на com.sun.faces.facelets.tag.jsf.core. ViewHandler.apply(ViewHandler.java:179)
на javax.faces.view.facelets. CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
на com.sun.faces.facelets.compiler. NamespaceHandler.apply(NamespaceHandler.java:93)
на com.sun.faces.facelets.compiler. EncodingHandler.apply(EncodingHandler.java:87)
на сайте com.sun.faces.facelets.impl. DefaultFacelet.include(DefaultFacelet.java:320)
на сайте com.sun.faces.facelets.impl. DefaultFacelet.include(DefaultFacelet.java:379)
на сайте com.sun.faces.facelets.impl. DefaultFacelet.include(DefaultFacelet.java:358)
на сайте com.sun.faces.facelets.impl. DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:199)
по адресу com.sun.faces.facelets.tag.ui. CompositionHandler.apply(CompositionHandler.java:155)
на com.sun.faces.facelets.compiler. NamespaceHandler.apply(NamespaceHandler.java:93)
на com.sun.faces.facelets.compiler. EncodingHandler.apply(EncodingHandler.java:87)
на сайте com.sun.faces.facelets.impl. DefaultFacelet.apply(DefaultFacelet.java:164)
на com.sun.faces.application.view. FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:870)
на com.sun.faces.lifecycle. RenderResponsePhase.execute(RenderResponsePhase.java:99)
на com.sun.faces.lifecycle. Phase.doPhase(Phase.java:101)
на com.sun.faces.lifecycle. LifecycleImpl.render(LifecycleImpl.java:139)
в javax.faces.webapp. FacesServlet.service(FacesServlet.java:594)
по адресу org.apache.catalina.core. ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
по адресу org.apache.catalina.core. ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
по адресу org.primefaces.webapp.filter. FileUploadFilter.doFilter(FileUploadFilter.java:79)
по адресу org.apache.catalina.core. ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
по адресу org.apache.catalina.core. ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
на сайте com.dhl.finFw.web.filter. FileNotFoundFilter.doFilter(FileNotFoundFilter.java:40)
на сайте com.dhl.finFw.web.filter. FileNotFoundFilter.doFilter(FileNotFoundFilter.java:35)
по адресу org.apache.catalina.core. ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
по адресу org.apache.catalina.core. ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
на org.springframework.web.filter. CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
на org.springframework.web.filter. OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
по адресу org.apache.catalina.core. ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
по адресу org.apache.catalina.core. ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
на org.springframework.security.web. FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
по адресу org.springframework.security.web.access.intercept. FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
по адресу org.springframework.security.web.access.intercept. FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
на org.springframework.security.web. FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
по адресу org.springframework.security.web.access. ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
на org.springframework.security.web. FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
в org.springframework.security.web.session. SessionManagementFilter.doFilter(SessionManagementFilter.java:64)
на org.springframework.security.web. FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
в org.springframework.security.web.session. SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
на org.springframework.security.web. FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
в org.springframework.security.web.authentication. AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
на org.springframework.security.web. FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
по адресу org.springframework.security.web.servletapi. SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
на org.springframework.security.web. FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
по адресу org.springframework.security.web.savedrequest. RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
на org.springframework.security.web. FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
в org.springframework.security.web.authentication. AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
на org.springframework.security.web. FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
в org.springframework.security.web.authentication.logout. LogoutFilter.doFilter(LogoutFilter.java:105)
на org.springframework.security.web. FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
в org.springframework.security.web.session. ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:125)
на org.springframework.security.web. FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
в org.springframework.security.web.context. SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
на org.springframework.security.web. FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
на org.springframework.security.web. FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
на org.springframework.security.web. FilterChainProxy.doFilter(FilterChainProxy.java:160)
на org.springframework.web.filter. DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
на org.springframework.web.filter. DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
по адресу org.apache.catalina.core. ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
по адресу org.apache.catalina.core. ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
по адресу org.apache.catalina.core. StandardWrapperValve.invoke(StandardWrapperValve.java:222)
по адресу org.apache.catalina.core. StandardContextValve.invoke(StandardContextValve.java:123)
в org.apache.catalina.authenticator. AuthenticatorBase.invoke(AuthenticatorBase.java:502)
по адресу org.apache.catalina.core. StandardHostValve.invoke(StandardHostValve.java:171)
на org.apache.catalina.valves. ErrorReportValve.invoke(ErrorReportValve.java:99)
на org.apache.catalina.valves. AccessLogValve.invoke(AccessLogValve.java:953)
по адресу org.apache.catalina.core. StandardEngineValve.invoke(StandardEngineValve.java:118)
в org.apache.catalina.connector. CoyoteAdapter.service(CoyoteAdapter.java:408)
по адресу org.apache.coyote.http11. AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
на org.apache.coyote. AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
на org.apache.tomcat.util.net. JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
в java.util.concurrent. ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
в java.util.concurrent. ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
на java.lang. Thread.run(Thread.java:724)
Изменить 2 — поворот
< ; xml версия = "1.0" кодировка = "UTF-8"? >
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<bean id="environmentVariablesConfiguration"
class="org.jasypt.encryption.pbe.config. EnvironmentStringPBEConfig">
<bean id="configurationEncryptor"
class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
<версия веб-приложения="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
FinFwUI
Конфигурация финансовой платформы
Сервлет Faces
javax.faces.webapp. FacesServlet
1
fileServlet
com.dhl.finFw.web. FileServlet
<? -- Расположение файла конфигурации Log4J для проверки инициализации и обновления!
Применяется Log4jConfigListener. Переменная заменяется свойством системы
. во время выполнения. -->
log4jConfigLocation
${finFw.config.location}log4j-finFwUI.properties
<!-- Версия приложения. Переменная заменяется во время сборки Maven. -->
<context-param>
<param-name>applicationVersion</param-name>
<param-value>${applicationVersion}</param-value>
</context-param>
<context-param>
<param-name>primefaces. THEME</param-name>
<param-value>dhl</param-value>
</context-param>
<context-param>
<param-name>javax.faces. FACELETS_SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces. FACELETS_LIBRARIES</param-name>
<param-value>/WEB-INF/springsecurity.taglib.xml</param-value>
</context-param><filter>
<filter-name>browserCacheControlFilter</filter-name>
<filter-class>com.dhl.finFw.web.filter. BrowserCacheControlFilter</filter-class>
</filter>
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter. FileUploadFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping><filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encoding-filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>fileNotFoundFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping><filter-mapping>
<filter-name>browserCacheControlFilter</filter-name>
<url-pattern>/pages/protected/integration/subscriptionScheduler.xhtml</url-pattern>
</filter-mapping>
<error-page>
<exception-type>org.springframework.security.access. AccessDeniedException</exception-type>
<location>/pages/public/error/accessDenied.xhtml</location>
</error-page>
<error-page>
<exception-type>java.lang. Throwable</exception-type>
<location>/pages/public/error/internal.xhtml</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/pages/public/error/internal.xhtml</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/pages/public/error/notFound.xhtml</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/pages/public/error/accessDenied.xhtml</location>
</error-page>
</web-app>
public class ViewScope implements Scope {
private Logger logger = LoggerFactory.getLogger(getClass());
public static final String VIEW_SCOPE_CALLBACKS = "viewScope.callbacks";