наследует интерфейс EJBObject, являющийся базовым для всех remote-интерфейсов. Remote-интерфейс содержит объявление бизнес-методов компонента. Клиент может вызывать только те методы, которые объявлены в remote-интерфейсе. В следующем листинге приведен remote-интерфейс session-компонента HelloBean.
package hello;
public interface Hello extends EJBObject {
public String sayHelloTo (String name)
throws RemoteException;
}
В нашем примере в remote-интерфейсе объявлен только метод sayHelloTo(String name), получающий строку имени в качестве аргумента и возвращающий строку приветствия.
Класс session-компонента должен быть объявлен как public. В нем должны быть реализованы объявленные в remote-интерфейсе бизнес-методы. Не существует формализованных отношений между классом компонента и его remote-интерфейсом (например, использования "implements"). Сигнатуры бизнес-методов в классе компонента и в его remote-интерфейсе должны полностью совпадать. Контроль соответствия типов берет на себя контейнер. Обычно контейнер проверяет соответствие типов в процессе поставки компонента. Возможна и проверка на этапе разработки, если ее обеспечивают используемые инструментальные средства. Для класса session-компонента конструктор не нужен, и Вы можете не задавать его. Все необходимые действия по инициализации компонента выполняются методом ejbCreate(). Класс session-компонента должен реализовать интерфейс SessionBean. Кроме того, при создании компонента необходимо реализовать все методы, для которых объявлены соответствующие им методы в home- и remote-интерфейсах. Класс session-компонента также должен соответствовать всем требованиям и соглашениям об именах, касающихся отношений между этим классом и home- и remote-интерфейсами компонента. Следующий листинг содержит пример реализации session-компонента HelloBean:
package hello;
public class HelloBean implements SessionBean {
public void ejbCreate () throws CreateException{}
public void setSessionContext(SessionContext ctx) {}
public void ejbRemove() {}
public void ejbActivate() {}
public void ejbPassivate() {}
public String sayHelloTo (String name) {
String str= “Hello ” + name + “!”;
return str;
}
}
Обратите внимание на то, что класс HelloBean не имеет конструктора. Он содержит один метод ejbCreate(), который используется для инициализации нового экземпляра компонента HelloBean. Класс содержит тривиальные реализации других обязательных методов интерфейса SessionBean – setSessionContext(), ejbRemove(), ejbActivate() и ejbPassivate().
Откомпилируйте классы компонента, используя следующие команды:
cd e:\TPPS\LABS\Lab1
set J2EE_HOME=e:\j2sdkee1.3
set CPATH=.;%J2EE_HOME%\lib\j2ee.jar
javac –d . -classpath %CPATH% hello/*.java
Запуск J2EE сервера
Запустите J2EE Application Server с помощью следующей команды:
start j2ee –verbose
Дождитесь сообщения "J2EE server startup complete".
Утилита DeployTool
Для сборки и развертывания приложения можно использовать специальную утилиту: deploytool. Для ее запуска наберите в командной строке: deploytool. На экране появится окно утилиты Application Deployment Tool, показанное на рисунке 1.1.
Рисунок 1.1 – Окно утилиты Application Deployment Tool
Это окно разделено на две части:
- окно приложений (Local Applications window) – показывает существующие J2EE-приложения и их компоненты, а также доступные J2EE сервера;
- окно инспектирования (Inspecting window) – отображает информацию о выбранном приложении или компонентах приложения.
Создание J2EE-приложения
Создайте новое J2EE-приложение с именем HelloApp следующим образом:
1. Из меню File утилиты DeployTool выберите команду New Application. На экране появится окно New Application, показанное на рисунке 1.2.
2. Нажмите кнопку «Browse» для выбора каталога для сохранения файла приложения.
3. Выберите каталог, в котором вы хотите сохранить файл приложения (в нашем примере это каталог e:\TPPS\LABS\Lab1).
4. В поле имени файла наберите HelloApp.ear – это имя файла создаваемого приложения.
5. Нажмите кнопку «New Application».
6. В поле Application File Name появится имя создаваемого приложения: HelloApp.ear, а в поле Application Display Name – строка HelloApp.
7. Для закрытия окна New Application нажмите кнопку «OK».
Рисунок 1.2 – Окно New Application
Теперь имя приложения HelloApp появится в окне Local Applications. Окно инспектирования (Inspecting window) будет отображать информацию об этом приложении.
Включение Session-компонента в приложение
EJB-компоненты упаковываются в jar-архивы. Поэтому вначале создадим jar-архив, а затем поместим в него EJB-компонент
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.