После книг 10-ти летней давности приветствую свежесть материала. Есть краткая информация по сервлетам версии 3.0, что радует. Перевод лёгкий, приятный.
Для совсем новичков я бы книгу не рекомендовал. Это бесполезная потеря времени и нервов. Перед освоением новой технологии очень рекомендую познакомиться с ней поближе, почитать статей, посмотреть примеры. Книга больше показывает как делать, чем раскрывает суть той или иной технологии. К ней надо подходить уже подкованным.
Из других рассмотренных технологий - JSP 2.1, пользовательские теги, JSTL 1.2, JDBC на примерах MySQL и JavaDB, JPA 2.0, JSF 2.0, JMS, JAAS, EJB 3.1, JAX-WS, JAX-RS, JavaMail. Рассмотрена установка и настройка сервера приложений GlassFish 3.1, а так же его интеграция с NetBeans и Eclipse.
По книге. Хорошее.
Простой стиль изложения, обилие примеров, достаточно толковый перевод. Где надо всё детально разжёвывается, а где надо - даётся такой поток информации, что мозги закипают. Начало книги достаточно расслабленное, но потом придётся попотеть, чтобы всё освоить. И это на 400 страницах. Блокбастеры прошлого с трудом укладывались в 700-800. Главы с тегами JSP и JSTL достаточно ёмкие, JDBC раздел небольшой, а вот в JPA без сто грамм не разобраться, там где вопрос касается связей между таблицами. JMS и JAAS рассмотрены со всех сторон. Главы EJB, JAX-WS, JAX-RS, как мне показалось, подготовлены слабее и в спешке, отправка почты тоже рассмотрена без дополнительных разъяснений.
Не очень.
Ошибки в вёрстке книги периодически могут приводить к взрыву мозга. Местами в исходном коде переведены строки, которые должны быть на английском, взять хотя бы пример для JavaMail. Практика показала, что некоторые ошибки возникают только у читателей этой книги (в русском переводе) и больше ни у кого. Прибавим к этому, что книга всё-таки уже не новьё, да и некоторые моменты в ней были упущены. Как результат - многочасовое сидение в сети в поисках решения и ответов. Хотя, банальной логики и внимательности хватает, чтобы понять причину ошибки. По настройке GlassFish информация несколько устарела, но это не вина книги. Больше всего убил времени на установку GlassFish и на то, чтобы подружить его с Eclipse.
Как оказалось, Eclipse Luna + GlassFish ныне требует Java 8, а заполучить её на Ubuntu 14.04 без приключений не получится. Ставил Kepler, он делает то же самое с Open JDK 7.
А при установке GlassFish 3.1.2.2 - если кто войдёт по моим стопам - надо понимать, что путь к asadmin будет таким: /glassfish3/glassfish/bin/asadmin
По JMS. Настройки ролей, групп и безопасности из sun-web.xml следует перенести в glassfish-web.xml.
Пример с JDBC realm - при создании newJdbcRealm надо указать Digest Algorithm: MD5 и можно Charset: UTF-8. Ещё надо создать пул соединений UserAuthPool по примеру CustomerDBPool. Настройки: база - userauth, логин/пароль: admin/admin. Следом надо создать ресурс jdbc/__UserAuthPool. Только тогда аутентификация из базы заработает.
Страница 300 (EJB). Надо:
public class SimpleSessionBean implements SimpleSession {
Ошибка в примерах JMS/EJB:
org.glassfish.appclient.client.acc.UserError: The location ...... could not be opened as an archive; an app client or an enterprise app was expected.
Решение (для Eclipse):
При экспорте проекта из Eclipse следует проделать следующие обязательные шаги:
1. Экспортировать как Jar file, не как Runnable Jar file.
2. На странице JAR File Specification поставить галочку: Export all output folders for checked project
3. На странице JAR Manifest Specification поставить галочку напротив Generate the manifest file. Внизу указать Main class: (кнопка Browse...)
5. Finish.
Непонятки в главах по EJB, JAX - подробностей не помню, но придётся немного попрыгать с бубном.
Традиционно - все примеры для буржуев, чтобы заставить их работать с русским текстом приходится снова лезть и инет.
сентябрь 2015