Несколько фабрик сессии под Spring/Быть в спящем режиме

Я также получал то же

XML reader error: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,2] Message: Reference is not allowed in prolog.

, когда мое приложение создавало ответ XML для вызова RestFull Webservice. При создании формата XML String я заменил & amp; lt и & gt; gt на & lt; и> затем ошибка погасла, и я получил правильный ответ. Не уверен, как это сработало, но оно сработало.

sample:

String body = "<ns:addNumbersResponse xmlns:ns=\"http://java.duke.org\"><ns:return>"
            +sum
            +"</ns:return></ns:addNumbersResponse>";
8
задан Verdant 23 September 2008 в 09:15
поделиться

5 ответов

Если все базы данных идентичны, то я могу предложить использовать единственный SessionFactory и предоставить Ваши собственные реализации DataSource и Кэшу, которые на самом деле "осведомлены об арендаторе". (Реализующий их довольно тривиально: просто поддержите карту идентификатора арендатора-> реальный кэш / реальный источник данных и затем делегируйте все вызовы к соответствующему). Настройте единственный SessionFactory для использования осведомленного об арендаторе Кэша и DataSource. ThreadLocal может использоваться для создания идентификатора арендатора текущего запроса доступным любому коду, который должен знать об этом.

Я использовал этот подход прежде успешно для поддержки коллективной аренды.

2
ответ дан 5 December 2019 в 23:17
поделиться

Где я раньше работал, мы сделали это через ThreadLocal после этого руководства. Мы просто использовали один SessionFactory и подкачали, это - источник данных на основе переменной сеанса, которую пользователь мог изменить, в то время как зарегистрированный. Я не помню точные детали, но если Вам интересно, я могу вскопать еще некоторую информацию о нашей реализации.

Это сказанное, хотя, парни на моем прежнем рабочем месте теперь переезжают от этого подхода и к базе данных черепка. Определенно более изящное решение, которое я рекомендовал бы Вам, смотрит на.

2
ответ дан 5 December 2019 в 23:17
поделиться

Вы могли также смотреть на Быть в спящем режиме проект Черепков:

http://www.hibernate.org/414.html

... который фокусируется на добавляющей поддержке горизонтального разделения к Быть в спящем режиме Ядру. Это еще не покрывает полное, в спящем режиме API, но действительно поддерживает значительную часть его (который может или не может быть достаточным для Ваших потребностей). Конечно, они работают для полного обзора.

0
ответ дан 5 December 2019 в 23:17
поделиться

расширьте ваш класс DAO из HibernateDaoSupport, затем вызовите метод setSessionFactory (), чтобы выполнить «горячую» замену баз данных

1
ответ дан 5 December 2019 в 23:17
поделиться

Вопрос говорит:

умножить число на 7 без использования оператора *

Это не использует * :

 number / (1 / 7) 

Изменить:
Это компилирует и работает нормально в C:

 int number,result;
 number = 8;
 result = number / (1. / 7);
 printf("result is %d\n",result);
-121--1107010-

Самое существенное отличие в том, что второе утверждение не работает;) В? знак в основном дает возможность установить тип значения (в данном случае перечисление) равным null, что обычно невозможно..

-121--1522998-

Я также попробовал поставщик кэша через ThreadLocal, и трудная часть делала горячую замену кэша, вы должны убедиться, что SessionFactory не имеет никаких активных сеансов, связанных с ним. Теперь, я думаю, что есть гораздо лучшее решение: используя конфигурацию Java Spring 3, вы можете динамически создавать ваш подсистему SessionFactory и позволить Spring выполнять управление кэшем для вас.

0
ответ дан 5 December 2019 в 23:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: