Сетевые средства Java


Java на сервере - часть 3


}

// Выполняется при обращении к методу create() 

// интерфейса MergeHome. Играет роль конструктора класса 

public void ejbCreate() {}

// Пустая реализация методов интерфейса 

public void setSessionContext(SessionContext ctx){} 

public void ejbRemoveO {} 

public void ejbActivate()(} 

public void ejbPassivate(){} }

public interface MergeHome extends EJBHome{

// Реализуется методом ejbCreate() класса MergeBean 

Merge create)} throws CreateException, RemoteException;

}

public interface Merge extends EJBObject{ 

public double merge(String si, String s2)

throws RemoteException; 

}

В сервлете листинга П.3 создаем объекты типа MergeHome и Merge и обращаемся к их методам:

import j avax.servlet.*;

import j avax.servlet.http.*;

import java.io.*;

import j avax.naming.*;

import j avax.rmi.PortableRemoteObj ect;

public class JDBCServlet extends HttpServlet { 

MergeHome mh; 

Merge m;

// Следующие определения 

//.......

public void init(ServletConfig conf) throws ServletExceptionf 

try( // Поиск объекта merge, реализующего MergeHome 

InitialContext ic = new InitialContext(}; 

Object ref = ic.lookup("merge"); 

mh = (MergeHome)PortableRemoteObject.narrow(

ref, MergeHome.class); }catch(Exception e){

e.printStackTrace(); } 

public void doPost(HttpServletRequest req, HttpServletResponse resp)

throws IOException, ServletExceptionf 

// Начало метода

//........

m = mh.create(); 

String s = m.merge(si, s2); 

// и т. д. 

}

После компиляции получаем EJB-приложение, состоящее из пяти файлов: JdbcServlet.html, JdbcServlet.class, MergeBean.class, MergeHome.class и Merge.class. Осталось правильно установить (deploy) его в контейнер EJB. Файлы jdbcserviet.html и JdbcServlet.class надо упаковать в один war-файл, остальные файлы — в один jar-файл, потом оба получившихся файла упаковать в один ear-файл (Enterprise ARchive). Кроме того, надо создать еще файл описания установки (deployment descriptor) в формате XML и занести его в архив. В этот файл, в частности, записывается имя "merge", по которому компонент отыскивается методом lookup ().

Все это можно сделать утилитой depioytool, входящей в состав Java 2 SDK Enterprise Edition. Эта же утилита позволяет проверить работу приложения и установить его в контейнер EJB. Надо только предварительно запустить EJB-сервер командой j2ee.

Впрочем, все файлы EJB-приложения можно упаковать в один jar-файл.

Многие серверы приложений и средства разработки, такие как Borland JBuilder и IBM Visual Age for Java, имеют в своем составе утилиты для установки EJB-приложений.

EJB-приложение готово. Теперь достаточно вызвать в браузере HTML-файл и заполнить появившуюся в окне форму.

 







- Начало -  - Назад -