Знайте, Intuit, лекция технология предприятието Java Beans

Един пример за "местно време"

Разработване без гражданство сесия боб (без гражданство сесия Бийн), който в отговор на въпрос ще се върне текущото време на сървъра. Ние наричаме CorrectTimeBean компонент .Vnachale погледнете изходния код на клиента компонент и конзола, чрез която ще разберете точното време на сървъра, и след това да се покаже как можете да реализирате този пример, използвайки среда за разработка Eclipse-WTP .Всички класове и интерфейси, които са специфични за компонента, correctTimeBean поставен в опаковката.

отдалечен интерфейс

На първо място, ние определяме отдалечен интерфейс (Remote Interface), разработена компонент CorrectTimeRemote.java файл. Всички видове отдалечени интерфейси простират (разширява) javax.ejb.EJBObject интерфейс.

Тук има само obtainCorrectTime () метод - той се връща текущото време на сървъра. Този метод може да генерира RemoteExcepton изключение изисква за всички отдалечени методи интерфейс.

Интерфейсът на дома

Сега се определи началната интерфейс (Home интерфейс) в CorrectTimeHomejava файл.

създаде () метод е отговорен например инициализация разработен компонент. Ако е необходимо, да създаде () метод може да бъде претоварен (претоварване), т.е., идентифицирани с методите може да създаде друга списък на формалните параметри. Обадете се създаде () метод връща дистанционното компонент CorrectTimeBean връзката.

компонент клас

А сега да разгледаме този клас, който реализира разработен компонент (файл CorrectTimeBean.java).

В този клас obtainCorrectTime (метод) се определя. Тя връща текущото време на сървъра. В допълнение, няколко методи са дефинирани в този раздел.

  • нищожен ejbCreate (). EJB компоненти никога не трябва да дефинират конструктори. Необходимо инициализация се извършва метод ejbCreate (). За сесия боб без гражданство (без гражданство сесия Бийн) Този метод се нарича само веднъж - пряко в създаването на своя сървър. Когато клиент посредством дома интерфейс (Home интерфейс) получи препратка към обекта на сесията боб е без гражданство, ejbCreate () метод не се нарича.
  • нищожен ejbActivate () хвърля EJBException, RemoteException. Този метод се използва за сесия държавни компоненти (Stateful Session боб) и обектно компоненти (Entity бобови култури) .В без гражданство сесия боб (фасул без гражданство сесия) не се използват.
  • нищожен ejbPassivate () хвърля EJBException, RemoteException. Този метод се използва за сесия боб с държавните и автономните боб. без гражданство сесия на зърна (без гражданство сесия боб) не се използва.
  • нищожен ejbRemove () хвърля EJBException, RemoteException. Този метод за сесия боб без гражданство, наречен веднъж -с неговото премахване.
  • нищожен setSessionContext (SessionContext arg0).

Ами определено поле публично статично окончателно дълго serialVersionUID. Започвайки с Java 1.5 във всички класове, които реализират (оръдия) java.io.Serializable интерфейс. се препоръчва да се определи тази област с уникален ключ 64-битова версия. Ако не е посочен тази област, на Java-машината ще трябва да го създадат при сериализиране обект. Това поле се генерира от класа на обекта. версии на паралелки с сериализация и deserialization могат да се различават (може да бъде, например, малко по-различно, прилагани методи) - ако тя се генерира автоматично, може да възникне следната ситуация. След това, когато deserialization е изключение е хвърлен. Ако полето е определен от възложителя, а след това тази ситуация може да бъде избегната. serialVersionUID поле може да бъде генериран от вграден механизъм Eclipse-WTP (см. по-долу), или чрез използване на serialver полезност. извършването на каквато и Java Development Kit .Bolee подробности за механизма за сериализация може да се намери в Java обекти сериализирането спецификация.

Характеристиката на разполагане

Сега трябва да се дефинира XML - компонент от ЕВРОВОК разгръщане (Deployment ЕВРОВОК) Компонентите са от различни видове, може да взаимодейства с услугата сигурност, сделка имена система и други общи услуги за разпределени системи на обектите. Контейнерът за EJB управлява компоненти автоматично, но е необходимо да се предостави допълнителна информация за всеки компонент. За тази цел, дескрипторите на разполагане. Първоначално EJB 1.0 като дескриптори използва специални класове, а след това тези класове са заменени от един XML файл. За EJB 2.1 ЕВРОВОК разполагане за CorrectTimeBean както следва:

Това ЕВРОВОК разполагане съдържа следните елементи:

Клиентското приложение

Сега създайте клиентско приложение (файл CorrectTimeClient.java), който ще се свърже с контейнер EJB, да получите препратка към компонента за дистанционно интерфейс, за да доведе до метод за получаване на точно време, и да отпечатате този път заедно с времето на клиентския компютър.

Клиент за да се обърнат към компонента, започва с пакет използване JNDI (Java наименуване и Directory Interface) за свързване към контейнер компонент. JNDI - това е независимо от прилагането на API за имената на двигатели и директории. Всеки продавач EJB трябва да предостави на JNDI-съвместим директория услугата. С помощта на JNDI клиент получава дистанционно позоваване на компонентите се поставят с в контейнер EJB. createJBossContext () метод съдържа логиката, на базата на JNDI за получаване на мрежова връзка към сървъра JBoss EJB .За различни контейнери, този код ще бъде различен, например, за WebSphere контейнер код изглежда по различен начин:

Повече JNDI ще бъдат обсъдени по-нататък в отделна глава.

метод параметър java.naming.provider.urI тяло createJBossContext () определя URL JBoss сървъра на приложения .В този пример, този параметър е JNP: //127.0.0.1: 1099 / съответния JNDI услуга от JBoss, бягане на локалната машина. След установяване JNDI -връзка и получаване контекста на createJBossContext на метод () Тази връзка може да се използва за търсене на вътрешен обект CorrectTimeBean.

Обект код = jndiContext.lookup ( "CorrectTimeBean");

В този клиентско приложение, методът

PortableRemoteObject. тесен (); CorrectTimeHome дома = (CorrectTimeHome)

PortableRemoteObject. тесен (виж, CorrectTimeHome.class);

Името, с което обектът се търси вътрешна CorrectTimeBean компонент, по време на разгръщане. Тя може да бъде същата като компонент в XML- ЕВРОВОК, или да е нещо съвсем различно.

Получаване на дистанционно препратка към вътрешен обект, можем да го използвате, за да създадете нов компонент обект CorrectTimeBean.

CorrectTimeRemote дистанционно = home.create ();

В действителност, както е споменато по-рано, на сесията боб без гражданство е не е задължително да е създаден, когато се обаждате се създаде () - в контейнера за EJB разполага с басейн на готови компоненти, без състояние. Поканата се създаде () тя се връща един от тях. Сега можем да наречем метод obtainCorrectTime (). при което ИС се нарича чрез подходящ метод на компонента има EJB контейнер.

Дата remoteDate = remote.obtainCorrectTime ();