preload
Окт 21

При выполнении ajax-запросов к «серверу приложений» Tomcat столкнулся с тем, что ответ от сервера не доходил до JavaScript. Проверив отдельно выполнение сервлета в Tomcat или выполнение ajax-запроса к тестовой странице php, удостоверился, что проблема не в них. Погуглив, вышел статью (и не одну), говорящую о том, что на выполнение ajax-запросов накладываются ограничения – ajax-запрос может быть выполнен только в том домене, где он находится, включая и порт. Т.е. если была загружена страница www.mydomain.com/index.php, то выполнить запрос она может только на страницу на домене (или поддомене) www.mydomain.com. А домены www.mydomain.com:80 и www.mydomain.com:8080 уже являются разными. Continue reading »

Tagged with:
Окт 18

При разработке своего тега JSTL столкнулся с тем, что не мог получить значение атрибута, который сам же помещал в контекст в сервлете. На первый взгляд, атрибут там просто отсутствовал.

Первой была попытка получить значение атрибута с помощью getJspContext().getAttribute(«my_attribute»). Данный вызов всегда возвращал null. Посмотрев, какие еще методы есть у контекста, нашел тот, который возвращает имена всех атрибутов в области видимости (getAttributeNamesInScope(n), где n – номер области видимости). Методом научного тыка узнал, что области видимости с номером 0, не бывает, что область видимости с номером 1 содержит важные атрибуты самой страницы JSP и ее контекста, а область видимости с номером 2, уже показала, что там есть атрибут, который я ищу.

Continue reading »

Tagged with:
Окт 17

Ликование от победы над проблемами с именами таблиц в JPA и PostgreSQL было подкреплено удобными мастерами JPA NetBeans, которые аккуратненько создавали все необходимые модули и классы для работы с БД. Тесты на выборку данных прошли на ура, разочарование пришло с попыткой сохранить POJO в БД. Все разборки с кодом и попытки сохранения в конечном итоге приводили к одному из следющих исключений:

  1. org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save()
  2. javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not get next sequence value
  3. java.lang.IllegalStateException: Transaction not active

Continue reading »

Tagged with:
Окт 08

Для хранения данных между сеансами я выбрал встроенную СУБД SQLite3. В качестве альтернатив можно использовать хранение данных внешних файлах (при это все операции по созданию, обработке файлов Вы реализуете сами), сериализацию данных (в данном случае Вы разрабатываете специальным образом классы, помещаете их в потом и извлекаете из потока), Core Data (данная технология появилась только в iPhone SDK версиях 3.0 и старше). Хранение в файлах я отбросил потому, что этот путь чреват большим количеством ошибок и увеличенным временем отладки. Сериализация тоже, по моему мнению, не совсем подходит для этого проекта. А Core Data достаточно сложная технология, и я хочу ее изучение пока что отложить. Что же касается SQLite3, то я достаточно хорошо знаком с базами данных и имею большой опыт в этой области.

В данном посте Вы найдете сжатый материал по использованию SQLite3 в проектах для iPhone. Источником практического материала для изучения и для этого поста послужила книга «Beginning iPhone 3 Development. Exploring the iPhone SDK» издательства Apress. Continue reading »

Tagged with:
Окт 07

Приложение под рабочим названием «Вёсла» задуман, как небольшая утилита, позволяющая производить запуск web-скриптов с iPhone. Сама по себе утилита несложная, кроме того, есть аналог уже присутствующий на iPhone – Safari, но все же эта утилита будет обладать некоторыми дополнительными особенностями. Как бы там ни было, я хочу на базе этого проекта освоиться с написанием приложений для iPhone и поделиться своими мыслями, открытиями и подводными камнями с Вами. Continue reading »

Tagged with: