Что делать, если при работе вашего web-приложения, вылетает ошибка
Проверьте, чтобы в CATALINA_HOME/lib был jstl-1.2.jar.
Загрузить можно здесь:
http://download.java.net/maven/1/jstl/jars/jstl-1.2.jar
Что делать, если при работе вашего web-приложения, вылетает ошибка
Загрузить можно здесь:
http://download.java.net/maven/1/jstl/jars/jstl-1.2.jar
NonUniqueObjectException: a different object with the same identifier value was already associated with the session
Данная ошибка проявляется в момент вызова saveOrUpdate() у hibernate template. Суть проблемы в том, что в один момент времени у нас есть два разных объекта с одинаковым идентификатором: один в сессии, а второй тот, что мы пытаемся сохранить.
Представим ситуацию, что у нас многопотоковое приложение, написанное на Java. Есть некий класс, выполняющий какое-либо конкретное действие с данными, например, отправку их по почте, а сами данные подготавливаются в другом месте кода в другом потоке. Перед отправкой данных нам необходимо как-то связаться с потоком, подготавливающим данные, дабы поймать момент, когда они будут готовы.
Пример 1. Простой, но неправильный пример
Регулярные выражения в Java? А почему бы и нет, как говорится. Время от времени неизбежно появляется необходимость их использовать, чтобы разбить строку на подстроки или, например, отформатировать данные. Сделать это можно несколькими разными способами.
Способ первый, он же самый простой, для несложных манипуляций - использовать встроенные методы класса String для работы с регулярными выражениями.
Пример 1.1. Разбивание строки на массив строк.
Каждый java-разработчик рано или поздно сталкивается с необходимостью переопределения метода equals, а соответственно и hashCode(). Кто-то пишет их сам, кто-то использует прибамбасы среды разработки. Например, я частенько использовал автоматическую генерацию в среде IDE Intellij IDEA (ALT + Insert / equals() and hashCode()), пока не нашел "красивое" решение, реализованное в библиотеке org.apache.commons - HashCodeBuilder() и EqualsBuilder().
Конечно, кто-то скажет, зачем использовать какие-то дополнительные библиотеки и классы, когда все можно самому написать. Ну, что сказать, на вкус и цвет...
В самом начале своего нелегкого пути по изучению Hibernate и фреймворка Spring для Java столкнулся с проблемой возникновения некого LazyInitException, когда пытался получить некий объект, ссылку на инстанс которого содержал другой, полученный от хибернейта.
Как всегда, горел очередной проект и читать документации особо было некогда, поэтому, пробежавшись быстро по поисковикам, уловил основной смысл данного поведения - при описания меппинга одного объекта по-умолчанию все его связи с другими объектами воспринимаются Hibernate как "ленивые". Иными словами, при наполнении данными объекта Group, который, к примеру, содержит в себе List users и связан с таблицей USER как One-To-Many, Hibernate не пойдет по этой связи наполнять данными список. Сделает он это лишь тогда, когда мы обратимся к этому списку. Здесь то и кроется корень проблемы - в моем приложении обращение к списку шло в тот момент, когда хибернейт сессия работы с базой, в которой я получил объект Group была уже закрыта. Отсюда и LazyInitException.
Есть несколько вариантов организации иерархии при работе с Hibernate ORM. На данный момент выделяют три подхода:
Остановимся на 3м варианте - One table per subclass, наиболее удачном на мой взгляд, т.к. в базе данных не будет никакой избыточности полей, как в первом варианте, и не будет проблемы масштабирования, как в варианте 2.
Итак, дано: Apache Http Server и Apache Tomcat. Задача - настроить связку между серверами, дабы можно было легко совмещать Java Web-приложения с другими веб-сервисами, работающими под httpd. В своем примере я использовал Apache 2 и Tomcat 6.
Начнем пожалуй.
1. Необходимо подключить к Apache модуль mod_jk, который будет являться связующим звеном между нашими серверами. Для этого загружаем mod_jk.so подходящей версии, кладем его в каталог с модулями Апача и в /etc/httpd/conf/httpd.conf прописываем строчки:
1. Форматирование чисел в денежных форматах:
2. Форматирование по шаблону
Простой пример, как можно отформатировать дату на jsp странице с помощью fmt taglib.
Последние комментарии
7 недель 4 дня назад
9 недель 1 день назад
11 недель 3 дня назад
12 недель 5 дней назад
13 недель 12 часов назад
13 недель 13 часов назад
13 недель 1 день назад
13 недель 4 дня назад
13 недель 4 дня назад
13 недель 4 дня назад