admin / 11.08.2018
Спасибо большое Sun за предоставленную информацию
Вопрос: Что такое сервлеты (Servlets)? Ответ: Сервлет — это Java программа, которая выполняется WEB-сервром или сервером приложений (Application Server) и реализует интерфейс javax.servlet.Servlet. Сервлеты подобны CGI-приложениям и предназначены для обработки запросов Internet-клиентов или броузеров и ответов на эти запросы. Как и в случае с CGI-приложениями, взаимодействие с сервлетами происходит через HTTP или защищенный HTTPS протоколы. Сервлеты могут принимать запросы отосланние как методом GET так и POST. Для обработки запросов полученных через эти методы используются прегруженные методы интерфейса Servlet Параметр request используется для получения параметров переданных сервлету, а response используется для формирования ответа клиенту. Приведем простой пример реализации метода doGet: Для написания сервлета с поддержкой HTTP-протокола следут наследовать класс HttpServlet, который реализует интерфейс Servlet. Напишем простейший сервлет: |
Код |
В этом сервлете в методе doGet мы получаем объект response, который возвращает нам объект PrintWriter, который мы используем для формирования HTML-страницы, которая будет возвращаться клиенту. Как вы видите, перед выводом мы установили MIME-тип "text/html". С тем же успехом мы можем использовать любой другой тип выводимых данных, которые поддерживаются HTTP-протоколом.
Для получения параметров из запроса переданных клиентом сервлету используется объект request. Для этого следует использовать метод request.getParameter("param_name"), где "param_name" — имя параметра.
Для запуска сервлетов WEB-сервером используется Servlet Engine или, согласно новой спецификации, контейнер сервлетов. Наиболее популярными контейнерами сервлетов являются Tomcat (от проекта Apache Jakarta) и Resin. Способ регистрации сервлета в контейнере и запуск контейнера зависит от конкретного контейнера и описан в документации поставляемой вместе с ним.
Документацию по сервлетам можно найти тут Java Servlet Technology
Содержание
Приведенная в этом разделе информация поможет вам исправить существующие неполадки, связанные с WebSphere Portal, а также предотвратить их появление в будущем. Информацию об отдельных компонентах можно найти в соответствующих разделах, посвященных устранению неполадок.
В этом разделе описаны неполадки, которые могут возникнуть во время работы с порталом или во время администрирования портала.
Если во время установки портала была выбрана опция развертывания основных портлетов (административных портлетов и портлетов настройки, применяемых порталом), однако при открытии портала ни одна страница не была показана, а файлы протокола установки базы данных содержат следующие сообщения об ошибках, значит возникла ошибка общей памяти в источниках данных DB2 и WebSphere Application Server:
com.ibm.wps.util.DataBackendException: Error during database access! Nested Exception is com.ibm.websphere.ce.cm.StaleConnectionException: [IBM][CLI Driver] SQL1224N A database agent could not be started to service a request, or was terminated as a result of a database system shutdown or a force command. SQLSTATE=55032
Исправление: В системах Unix базу данных WebSphere Portal нельзя использовать напрямую. Нужно определить локальный псевдоним базы данных. Этот псевдоним подключается к базе данных WebSphere Portal по соединению TCP/IP. Необходимые инструкции приведены в WebSphere Portal Information Center. Найдите инструкции по настройке DB2.
Если пользователь войдет в портал, а затем откроет другой экземпляр браузера и еще раз войдет в портал под именем другого пользователя, то второй экземпляр браузера может переключиться на первый сеанс пользователя. Не исключены и другие неполадки.
Исправление: В тех случаях, когда в портал нужно войти под именем другого пользователя, используя тот же клиент, следует выполнить одну из следующих процедур:
Если при изменении информации о пользователе в WebSphere Portal было выдано сообщение об ошибке «Сбой базовой системы хранения данных. Повторите попытку позже» или атрибуты пользователя не были изменены в LDAP, то, возможно, необходимо изменить параметры настройки производительности DB2 и IBM Tivoli Directory Server.
Исправление: По умолчанию применяются следующие параметры DB2:
APP_CTL_HEAP_SZ 128 APPLHEAP_SZ 128
Этих значений недостаточно для системы IBM Tivoli Directory Server WebSphere Portal AIX с 2000 записей о пользователях.
Размер кучи UDB применяется при вставке и обновлении данных.
WebSphere Portal запускает сложные транзакции на сервере LDAP при выполнении любых операций, в частности, при изменении атрибутов пользователей, которое требует выполнения нескольких операций обновления и вставки. Для устранения этой неполадки рекомендуется настроить производительность WebSphere Portal следующим образом:
su -ldapdb2 db2 -c update db cfg for ldap using APP_CTL_HEAP_SZ 1024 db2 -c update db cfg for ldap using APPLHEAP_SZ 1024
После выбора задачи Изменить страницу может возникнуть ошибка приложения. Эта ошибка возникает после выполнения следующей последовательности действий:
Открывается окно Изменить портлет.
Исправление: При возникновении такой ошибки пользователь должен выйти из системы, а затем снова войти в систему. В следующий раз ошибка не возникнет.
Исправление: Убедитесь в том, что:
Если Web-приложение с портлетами недоступно, например, остановлено сервером приложений, то соответствующие портлеты не покажут сообщение об ошибке, а просто покажут пустое окно. В этом случае в файл протокола будет занесено одно из следующих сообщений:
Исправление: С помощью Административной консоли сервера приложений убедитесь, что приложение запущено.
Исправление: В течение некоторого времени после обновления приложения с портлетами обновленные портлеты могут быть недоступны. Выйдите из системы, а затем снова войдите в систему.
После возникновения тайм-аута LTPA и последующего тайм-аута сеанса может быть выдано сообщение об ошибке . В этом случае необходимо снова войти в систему.
Исправление: Обновите содержимое окна браузера одним из следующих способов:
При выполнении поиска, который должен вернуть большое число пользователей и групп может произойти тайм-аут. Кроме того, возможна ситуация, когда число записей, возвращенных операцией поиска, превысит максимальное число записей, которое может быть обработано системой.
Исправление: Вы можете настроить функцию поиска, ограничив максимальное число результатов или время выполнения операции. Подробные инструкции приведены в разделе Управление пользователями и группами.
В портлетах, использующих операции со строками, обновление окна браузера может привести к повторному выполнению операции портлетом, что может привести к неправильной работе некоторых портлетов. Например, обновив окно браузера, пользователь может обнаружить, что изменилось количество помещенных в корзину товаров.
Исправление: Измените портлет, добавив следующий параметр конфигурации:
com.ibm.wps.portlet.action.redirect = true
Этот параметр позволяет перезагружать страницу и портлет без параметров действий в URL. Для добавления и настройки параметров конфигурации выберите опцию Администрирование,Портлеты,Управление портлетами. Выберите портлет для изменения и нажмите кнопку Изменить параметры.
Когда пользователь входит в защищенную область WebSphere Portal (например, myportal) с другого экземпляра сервера приложений домена единого входа в систему WebSphere Portal, используя cookie сеанса с именем JSESSIONID и путем, совпадающим с URL портала (например, со значением по умолчанию /), то будет показано сообщение о тайм-ауте сеанса. Причина этого состоит в том, что WebSphere Portal не может определить, был ли cookie браузера создан им самим или другим экземпляром сервера приложений.
Исправление: Если возникает эта неполадка, следует исправить путь cookie так, чтобы можно было различать URL WebSphere Portal в различных экземплярах сервера приложений, входящих в один домен единого входа в систему. Задайте уникальный путь для cookie с именем JSESSIONID в параметрах управления сеансом на странице Администрирование WebSphere Application Server.
Примечание: Если вы укажете путь cookie с помощью опции «заменить» в параметрах управления сеансом на уровне, отличном от уровня Web-контейнера, то вам потребуется еще раз задать параметры распределенного сеанса на этом уровне, даже если они уже были заданы на уровне Web-контейнера.
Браузеры Mozilla, подключающиеся к порталу с одного и того же IP-адреса, используют один сеанс WebSphere Portal. Если пользователь войдет в систему портала сразу под двумя именами, то браузер продолжит применять лишь одно из имен, причем сообщение о том, какой именно пользователь работает с WebSphere Portal, не будет выдано. Например, если в одном окне браузера пользователь вошел в систему под именем UserA, а в другом окне — под именем UserB, то оба окна будут обрабатываться как открытые пользователем UserB, т.е. вся показанная информация и параметры будут относиться к пользователю UserB.
Исправление: Для входа в систему под другим именем пользователя с помощью браузера Mozilla необходимо предварительно закрыть все экземпляры браузера.
Если во время установки портала не был создан администратор заданий, то портал выдает следующее сообщение об ошибке:
Данное сообщение указывает на то, что администратор заданий не был создан во время установки. Обычно это происходит по следующим причинам:
В результате не работает функция параллельного отображения портлетов (PPR). Компонент PPR заносит в протокол указанное выше сообщение об ошибке PEEX0100E. Данное сообщение может также указывать на тот факт, что не выполнена инициализация процесса параллельного отображения. В этом случае параллельное отображение автоматически выключается. Портал продолжает нормальную работу без применения этой функции. Все портлеты отображаются последовательно.
Исправление: Для правильной работы компонента PPR необходимо перед установкой портала обеспечить выполнение всех требований, обязательных для работы этого компонента.
Ниже перечислены требования, которые должны быть выполнены:
Если поместить портлет Поиск документа на анонимной странице, для работы с которой пользователю не требуется входить в систему, то портлет не будет работать.
Исправление: Следует разрешить общедоступные сеансы работы с порталом.
Причиной ошибки является то, что портлету поиска документов необходим доступный сеанс, а на страницах для анонимных пользователей портала по умолчанию сеансы отключены. По умолчанию сеансы создаются только после идентификации пользователя и его входа на сервер портала.
Для того чтобы включить общедоступные сеансы, откройте файл и присвойте параметру значение . Перезапустите WebSphere Application Server и WebSphere Portal, чтобы изменения вступили в силу.
Если в конфигурации портлетов поиска заменить локальную службу поиска на удаленную службу, или наоборот, то портлеты перестанут работать. Это относится к административному портлету Управление наборами документов и к портлету пользовательскому портлету Поиск документов.
Причина: Встроенный компонент поиска можно настроить для работы с локальной службой поиска, либо с удаленной службой поиска посредством интерфейса SOAP (Web-службы). Портлет, настроенный на использование локальной или удаленной службы поиска, нельзя настроить на использование другого типа службы поиска. При попытке сделать это портлет перестанет работать.
Исправление: Портлет можно переключить на использование другого типа службы поиска (например, удаленной вместо локальной) только вручную. Для этого следует создать другую копию портлета и настроить ее на использование другого типа службы поиска. Для использования локальной службы поиска параметр URL SOAP следует оставить пустым, а для использования удаленной службы — указать его значение.
В этом разделе описаны ошибки, которые могут возникать при просмотре информации на различных языках в WebSphere Portal.
При просмотре портала в браузере Netscape, установленном в системе AIX с турецкой локалью и турецкой раскладкой клавиатуры, некоторые турецкие символы могут выводиться неправильно. Кроме того, может быть запрещен вход в систему. Это связано с тем, что Netscape для AIX поставляется на условиях ограниченной гарантии.
Исправление: При возникновении подобных неполадок рекомендуется воспользоваться другим браузером или браузером, установленным в другой операционной системе.
Если браузер работает в локали или , то текст на трех остальных языках может не отображаться.
Исправление: Выполните следующие действия:
Данная информация относится к языкам с набором двухбайтовых символов (DBCS). Если поля выбора содержат информацию DBCS (например, поле для выбора страницы), то в некоторых случаях все символы отображаются в виде прямоугольников. Эта неполадка возникает случайным образом, поэтому невозможно указать, для каких версий браузеров и операционных систем она характерна.
Исправление: Исправление в настоящее время не предусмотрено.
Если вы открыли WebSphere Portal Information Center или справку по порталу в Microsoft Internet Explorer 6.x, а затем воспользовались функцией поиска, то результаты поиска могут содержать искаженные символы.
Исправление: Список других поддерживаемых Web-браузеров приведен в разделе Требования справочной системы Information Center.
Исправление:
Если виртуальный ресурс , представляющий доступ к интерфейсу конфигурации XML, перевести под защиту внешнего администратора защиты, дальнейшее использование интерфейса конфигурации XML станет невозможно.
Исправление: Если управление доступом к WebSphere Portal передается внешнему администратору защиты, такому как Tivoli Access Manager, то следует проследить за тем, чтобы виртуальный ресурс интерфейса конфигурации XML не был передан под управление внешнего администратора.
Во время изменения страницы с помощью портлета Редактирование макета эта страница деактивируется, а ссылка для перехода в режим редактирования портлета, расположенного на этой странице, удаляется.
Причина: Страница деактивируется в момент выполнения любого действия в портлете Редактирование информационного наполнения и макета, например при добавлении портлета или перемещении портлета или контейнера.
Исправление: Если страница была деактивирована в результате выполнения какого-либо действия, нажмите Готово, чтобы выйти из страницы. Страница будет активирована повторно. Щелкните на ссылке Редактировать страницу, чтобы была показана ссылка Редактировать портлет.
WebSphere Portal устанавливает на сервере WebSphere Application Server приложение административной консоли WebSphere Portal Application Server, с помощью которого можно управлять сервером приложений, не настраивая и не запуская второй экземпляр сервера приложений (по умолчанию это server1). По умолчанию номер порта равен 9081.
Исправление: В системах Windows 2000 для запуска Административной консоли создается пункт меню Пуск. Если при выборе этого пункта меню консоль не загружается и выдается сообщение об ошибке HTTP 404, значит для сервера приложений задан порт администрирования, отличный от указанного в ярлыке для пункта меню Пуск.
Измените свойство Административной консоли WebSphere Application Server в меню Пуск Windows 2000 (Пуск > Программы > IBM WebSphere > Application Server Version 5.0 > Административная консоль). Например, измените
на
Library | Support | Terms of use | Feedback
Information Center last updated: Friday, November 19, 2004
IBM WebSphere Portal for Multiplatforms 5.1 | (c) Copyright IBM Corporation 2000, 2004
Web-система электронного документооборота и совместной работы PayDox получила новый функционал под названием PayDox Portal.
Он позволяет встраивать информационные блоки и элементы управления в любые корпоративные сайты. Это реализуется простой вставкой HTML-кода виджета на страницу сайта. Например, можно отображать на корпоративном сайте списки документов для согласования или ознакомления текущим пользователем, папки и файлы виртуального каталога PayDox, актуальные задачи и поручения для данного пользователя, активные бизнес-процессы. В любой сайт можно также включить списки задач из PayDox Case Management, что позволит сотрудникам контролировать исполнение поручений, обсуждать любые размещенные материалы и документы, публиковать комментарии и сообщения непосредственно на своем корпоративном сайте.
2007. JBoss Portal поддерживает Google Gadgets
В инструментарии построения порталов с открытым кодом JBoss Portal версии 2.6 появилась поддержка размещения на страницах Google Gadgets — миниприложений, таких как календарь, метеоглобус, мультимедиа-плейер и т. п. Усовершенствования JBoss Portal 2.6 также затронули области персонализации, управления идентификацией и потоков работ. Отныне пользователи могут персонализировать индивидуальные портлеты, — выбирая для них темы оформления, макеты и содержание. Обновлены функции администрирования: стало проще создавать пользователей, появился поиск. Портальная система интегрируется с LDAP-серверами Red Hat Director Server, OpenDS и OpenLDAP. Поддерживается возможность использования на страницах элементов пользовательских интерфейсов из библиотек Ajax4jsf и RichFaces. Обеспечена расширенная поддержка спецификации Web Services for Remote Portlets, в том числе возможности «клонирования» портлета для использования в других конфигурациях. JBoss Portal 2.6 требует использования JBoss Application Server. В дальнейших версиях, возможно, будет обеспечена поддержка других серверов приложений.
2007. Google Gadgets доступны в порталах IBM WebSphere
IBM выпустила бесплатный портальный компонент, позволяющий подключать к порталам WebSphere Portal мини веб-приложения (виджеты) Google Gadgets, количество которых на сегодня насчитывает около 4 тыс. В наборе присутствуют гаджеты подачи потокового видео с YouTube, практические бизнес-приложения: карты, переводчики, трекеры доставки почтовых отправлений, а также окна со сводкой погоды, новостями, поиском по аудиозаписям или в Wikipedia. IBM Portlet for Google Gadgets позволяет загружать мини-приложения Google, превращать их в портлеты WebSphere и безопасно пользоваться ими под защитой межсетевого экрана. Возможность использования Gadgets поддерживается в WebSphere Portal 6.0 и WebSphere Portal Express. Для проекта интеграции WepSphere Portal с разработками Google последняя предоставила IBM набор интерфейсов API.
2007. BEA WebLogic Portal 10 в стиле Web 2.0
BEA Systems выпустила новую версию своей системы построения порталов — BEA WebLogic Portal 10.
В компании особо выделяют новые возможности продукта, отвечающие технологиям Web 2.0. В частности, это средства поддержки Web-сервисов, работающих по протоколу REST (Representational State Transfer). WebLogic Portal 10 позволяет создавать портлеты, доступные для использования по REST внешними Web-приложениями. Например, портлет, обеспечивающий функцию поиска телефона служащего, может быть посредством REST экспонирован во внешнем Web-приложении. Кроме того, в составе WebLogic Portal имеется библиотека AJAX для построения высокоинтерактивных приложений. Поддержка спецификации WSRP (Web Services for Remote Portlets) 2.0 обеспечивает связь между портлетами и возможность их динамического обновления. Обновлены средства администрирования портала. BEA WebLogic Portal требует для работы сервера Java-приложений BEA WebLogic Server.
2003. Стандарты корпоративных порталов: JPS и WSPR
В настоящее время разрабатываются два взаимодополняющих стандарта в области порталов. Первый, проходящий стадию открытого рецензирования, — Java Portlet Specification; он призван стандартизовать поведение окна портлета и средства его взаимодействия с сервером. Стандарт создан и поддерживается компаниями, в числе которых Sun, IBM, BEA, SAP, Oracle, Vignette, Plumtree, Novell, Sybase и др. Второй, Web Services for Remote Portals (WSRP), разрабатывается группой компаний, в которую входят многие из перечисленных, а также Microsoft. WSRP представляет стандартизованные портлеты в качестве «визуальных» Web-служб, которые можно вызывать удаленно независимо от их местонахождения. В числе прочего WSRP обеспечит взаимодействие между элементами порталов на основе платформ Java и .Net.Вместе два стандарта обещают воплотить в жизнь идею объединенной портальной среды. Кроме того, они стимулируют превращение портальных серверов в продукт массового применения (аналогично серверам приложений и базам данных) и консолидацию портальных сред, в которые войдут встроенные механизмы управления содержанием, совместной работы, аналитики и поиска. В области инфраструктуры порталов в лидеры закономерно выйдут такие производители, как IBM, BEA,Oracle и Microsoft, а у разработчиков приложений появится возможность представлять свои системы в виде исполняющихся на базе этой инфраструктуры портлетов, страниц и комбинированных решений. Остается лишь дождаться завершения работы над стандартами.
В главе 19 была упомянута технология CGI. Ее суть в том, что сетевой клиент, обычно браузер, посылает Web-серверу информацию вместе с указанием программы, которая будет обрабатывать эту информацию. Web-сервер, получив информацию, запускает программу, передает информацию на ее стандартный ввод и ждет окончания обработки. Результаты обработки программа отправляет на свой стандартный вывод, Web-сервер забирает их оттуда и отправляет клиенту. Написать программу можно на любом языке, лишь бы Web-сервер мог взаимодействовать с ней.
В технологии Java такие программы оформляются как сервлеты (servlets). Это название не случайно похоже на название "апплеты". Сервлет на Web-сервере играет такую же роль, что и апплет в браузере, расширяя его возможности.
Чтобы Web-сервер мог выполнять сервлеты, в его состав должна входить JVM и средства связи с сервлетами. Обычно все это поставляется в виде отдельного модуля, встраиваемого в Web-сервер.
Существует много таких модулей: Resin, Tomcat, JRun, JServ. Они называются на жаргоне сервлетными движками (servlet engine).
Основные интерфейсы и классы, описывающие сервлеты, собраны в пакет javax.servlet. Расширения этих интерфейсов и классов, использующие конкретные особенности протокола HTTP, собраны в пакет javax.servlet.http. Еще два пакета– javax.servlet.jsp и javax.servlet.jsp.tagext – предназначены для связи сервлетов со скриптовым языком JSP (JavaServer Pages). Все эти пакеты входят в состав J2SDK Enterprise Edition. Они могут поставляться и отдельно как набор JSDK (Java Servlet Development Kit). Сервлет-ный движок должен реализовать эти интерфейсы.
Основу пакета javax.servlet составляет интерфейс servlet, частично реализованный в абстрактном классе GenericServlet и его абстрактном подклассе HttpServlet. Основу этого интерфейса составляют три метода:
Опытный читатель уже понял, что вся работа сервлета сосредоточена в методе service (). Действительно, это единственный метод, не реализованный в классе GenericServlet. Достаточно расширить свой класс от класса. GenericServlet и реализовать в нем метод service (), чтобы получить собственный сервлет. Сервлетный движок, встроенный в Web-сервер, реализует интерфейсы ServletRequest и ServletResponse. Он Создает объекты req и resp, заносит всю поступившую информацию в объект req и передает этот объект сервлету вместе с пустым объектом resp. Сервлет принимает эти объекты как аргументы req и resp метода service (), обрабатывает информацию, заключенную в req, и оформляет ответ, заполняя объект resp. Движок забирает этот ответ и через Web-сервер отправляет его клиенту.
Основная информация, заключенная в объекте req, может быть получена методами read() и readLine() из байтового потока класса ServletlnputStream, непосредственно расширяющего класс inputstream, или из символьного потока класса BufferedReader. Эти потоки открываются, соответственно, методом req.getlnputStream() или методом req.getReader ().
Дополнительные характеристики запроса можно получить многочисленными методами getxxx() объекта req. Кроме того, класс GenericServlet реализует массу методов getxxx(), позволяющих получить дополнительную информацию о конфигурации клиента.
Интерфейс servletResponse описывает симметричные методы для формирования ответа. Метод getoutputstreamo открывает байтовый поток класса ServletOutputStream, непосредственно расширяющего класс OutputStream. Метод getWriter () открывает символьный поток класса PrintWriter.
Итак, реализуя метод service(), надо получить информацию из входного потока объекта req, обработать ее и результат записать в выходной поток объекта resp.
Очень часто в объекте req содержится запрос к базе данных. В таком случае метод service () обращается через JDBC к базе данных и формирует ответ resp из полученного объекта ResultSet.
Протокол HTTP предлагает несколько методов передачи данных: GET, POST, PUT, DELETE. Для их использования класс GenericServlet расширен классом HttpServlet, находящимся В пакете javax.servlet.http. В этом классе есть методы для реализации каждого метода передачи данных:
doGet(HttpServletRequest req, HttpServletResponse resp) doPost(HttpServletRequest req, HttpServletResponse resp) doPut(HttpServletRequest req, HttpServletResponse resp) doDelete(HttpServletRequest req, HttpServletResponse resp)
Для работы с конкретным HTTP-методом передачи данных достаточно расширить свой класс от класса HttpServlet и реализовать один из этих методов. Метод service () переопределять не надо, в классе HttpServlet он только определяет, каким HTTP-методом передан запрос клиента, и обращается к соответствующему методу doXxx(). Аргументы перечисленных методов req и resp – это объекты, реализующие Интерфейсы HttpServletRequest и HttpServletResponse, расширяющие интерфейсы ServletRequest и ServietResponse, соответственно.
Интерфейс HttpServletRequest к тому же описывает множество методов getxxx (), позволяющих получить дополнительные свойства запроса req.
Интерфейс HttpServletResponse описывает методы addxxx() и setxxx(), дополняющие ответ resp, и статические константы с кодами ответа Web-сервера.
FILED UNDER : IT