Я также получал то же
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>";
Если все базы данных идентичны, то я могу предложить использовать единственный SessionFactory и предоставить Ваши собственные реализации DataSource и Кэшу, которые на самом деле "осведомлены об арендаторе". (Реализующий их довольно тривиально: просто поддержите карту идентификатора арендатора-> реальный кэш / реальный источник данных и затем делегируйте все вызовы к соответствующему). Настройте единственный SessionFactory для использования осведомленного об арендаторе Кэша и DataSource. ThreadLocal может использоваться для создания идентификатора арендатора текущего запроса доступным любому коду, который должен знать об этом.
Я использовал этот подход прежде успешно для поддержки коллективной аренды.
Где я раньше работал, мы сделали это через ThreadLocal после этого руководства. Мы просто использовали один SessionFactory и подкачали, это - источник данных на основе переменной сеанса, которую пользователь мог изменить, в то время как зарегистрированный. Я не помню точные детали, но если Вам интересно, я могу вскопать еще некоторую информацию о нашей реализации.
Это сказанное, хотя, парни на моем прежнем рабочем месте теперь переезжают от этого подхода и к базе данных черепка. Определенно более изящное решение, которое я рекомендовал бы Вам, смотрит на.
Вы могли также смотреть на Быть в спящем режиме проект Черепков:
http://www.hibernate.org/414.html
... который фокусируется на добавляющей поддержке горизонтального разделения к Быть в спящем режиме Ядру. Это еще не покрывает полное, в спящем режиме API, но действительно поддерживает значительную часть его (который может или не может быть достаточным для Ваших потребностей). Конечно, они работают для полного обзора.
расширьте ваш класс DAO из HibernateDaoSupport, затем вызовите метод setSessionFactory (), чтобы выполнить «горячую» замену баз данных
Вопрос говорит:
умножить число на 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 выполнять управление кэшем для вас.