JavaRush /جاوا بلاگ /Random-UR /EJB کا تعارف
Анзор Кармов
سطح
Санкт-Петербург

EJB کا تعارف

گروپ میں شائع ہوا۔
اس مضمون میں ہم EJB - Enterprise JavaBeans کو دیکھیں گے۔ یہ ٹیکنالوجی Java EE تفصیلات کا حصہ ہے۔ ہم اس طرح کے مسائل پر رابطہ کریں گے:
  • EJB کیا ہے؛
  • EJB کی تاریخ کیا ہے؛
  • EJB کی کون سی قسمیں ہیں؟
ہم EJB اور servlets کا استعمال کرتے ہوئے ایک چھوٹی HelloWorld ایپلیکیشن بھی لکھیں گے۔ EJB کا تعارف - 1یہ مضمون ان قارئین کے لیے مفید ہو گا جو جاوا SE کے ساتھ آرام دہ ہو گئے ہیں اور جاوا EE سیکھنا شروع کر رہے ہیں۔ اس مضمون کے عملی حصے کو مکمل طور پر سمجھنے کے لیے، یہ تجویز کیا جاتا ہے کہ آپ پہلے مضمون " مقامی ماحول کو ترتیب دینا " پڑھیں۔

EJB کی مختصر تاریخ

1996 میں، جب اس مضمون کے مصنف کی عمر 5 سال تھی، جاوا پہلے سے ہی ڈویلپرز میں مقبول تھا۔ اس کی وجہ فرینڈلی API، آٹومیٹک گاربیج کلیکشن وغیرہ تھی۔ جاوا بڑے پیمانے پر بیک اینڈ کے لیے ذمہ دار سسٹمز میں استعمال ہوتا تھا۔ تاہم، زبان کی تمام تر لذتوں کے باوجود، اس وقت کے پروگرامرز کو کچھ خاص فعالیت کی ضرورت تھی جو ابھی تک JDK میں نافذ نہیں ہوئی تھی۔ یہ ضروریات تھیں:
  • ڈیٹا کی برقراری کو یقینی بنانا؛
  • لین دین کی سالمیت
  • ڈیٹا تک مسابقتی رسائی (ملٹی تھریڈنگ کنٹرول)؛
  • اور غالباً کچھ اور۔
یہ سب گھریلو، خود تحریر شدہ، بند لائبریریوں کی آبادی میں قدرتی اضافہ کا باعث بنے۔ دوسرے لفظوں میں، ہر ایک نے اپنی ضروریات پوری کیں جو وہ کر سکتے تھے۔ یہ تب تک ہے جب تک کہ IBM اس نعرے کے ساتھ سامنے نہیں آیا، "ہر ایک کو اپنی ضروریات کو اسی طرح پورا کرنا چاہیے،" اور 1997 میں انٹرپرائز جاوا بین (EJB) کی تفصیلات جاری کیں۔ یہی وہ چیز تھی جس نے ترقی کے عمل کو یکجا کرنا اور عام مسائل (ضروریات کے طور پر اوپر بیان کیا گیا ہے) کے حل کو فریم ورک تک لے جانا ممکن بنایا۔ سن 2 سالوں سے IBM کے دماغ کی اختراع کو ڈھال رہا ہے، اور 1999 میں EJB 1.0 تفصیلات جاری کیں۔ اس طرح ٹیکنالوجی نے جنم لیا، جس پر مزید بات چیت کی جائے گی۔

EJB کیا ہے؟

EJB ایک معنی میں ایک اجتماعی اصطلاح ہے جس کا سیاق و سباق پر منحصر ہے، اس کا مطلب عام طور پر انٹرپرائز JavaBeans ٹیکنالوجی سے ہو سکتا ہے، یا کچھ مخصوص Enterprise JavaBean سافٹ ویئر کا جزو (بین) جو EJB ٹیکنالوجی کا حصہ ہے۔ ٹیکنالوجی کے طور پر EJB کی تعریف Wikipedia: Enterprise JavaBeans پر دی گئی ہے (اکثر EJB کے مخفف کے طور پر بھی استعمال ہوتا ہے) کاروباری منطق پر مشتمل سرور کے اجزاء کو لکھنے اور اس کی حمایت کرنے کے لیے ٹیکنالوجی کی تصریح ہے۔ یہ Java EE کا حصہ ہے۔ یہ ٹیکنالوجی عام طور پر اس وقت استعمال ہوتی ہے جب کاروباری منطق کو درج ذیل میں سے کم از کم ایک خدمات کی ضرورت ہوتی ہے، اور اکثر ان سبھی:
  • ڈیٹا پرسسٹینس کے لیے سپورٹ: پروگرام کو روکنے کے بعد بھی ڈیٹا محفوظ ہونا چاہیے۔ اکثر ڈیٹا بیس کا استعمال کرتے ہوئے حاصل کیا جاتا ہے۔
  • تقسیم شدہ لین دین کے لیے تعاون؛
  • متوازی ڈیٹا میں ترمیم اور ملٹی تھریڈنگ کے لیے سپورٹ؛
  • واقعہ کی حمایت؛
  • نام اور ڈائریکٹری سپورٹ (JNDI)؛
  • سیکورٹی اور ڈیٹا تک رسائی کی پابندی؛
  • ایپلیکیشن سرور پر خودکار تنصیب کے لیے معاونت؛
  • دور دراز تک رسائی
اوپر درج خدمات EJB ٹیکنالوجی کا بلا شبہ فائدہ ہیں۔ اس طرح کا ایک اور فائدہ یہ ہے کہ اوپر دی گئی ہر چیز فوراً باکس کے باہر کام کرتی ہے۔ وہ. پروگرامر کو تقسیم شدہ لین دین کی حمایت کرنے کے بارے میں سوچنے کی ضرورت نہیں ہے۔ پروگرامر کو صرف اس کاروباری منطق کے بارے میں سوچنے کی ضرورت ہے جسے وہ اس وقت نافذ کرنے کی کوشش کر رہا ہے۔ ایک EJB بطور مخصوص سافٹ ویئر جزو ایک جاوا کلاس ہے جس میں EJB تفصیلات سے ایک یا زیادہ تشریحات ہیں جس میں ایپلی کیشن کی کچھ کاروباری منطق ہوتی ہے۔ EJB تفصیلات سے تشریحات ٹیگ شدہ طبقے کو کچھ طاقتیں، طاقتیں، اور سپر پاور دیتی ہیں۔ ذیل میں اس کے بارے میں مزید پڑھیں۔

EJB کی اقسام

آئیے خلاصہ کرتے ہیں۔ EJB ایک باقاعدہ جاوا کلاس ہے جس پر خصوصی تشریحات میں سے ایک کے ساتھ نشان لگایا گیا ہے۔ ایسی کلاسوں کو پھلیاں کہتے ہیں۔ کلاس کو کس تشریح کے ساتھ نشان زد کیا گیا ہے اس پر منحصر ہے، یہ ایک یا دوسری قسم کے EJB (سیم) کا نمائندہ ہوگا۔ پھلیاں کی تین اہم اقسام ہیں:
  • Message Driven Beans (پیغام سے چلنے والی پھلیاں)؛
  • Entity Beans - JPA (Java Persistence API) تصریح میں بیان کردہ اور ڈیٹا کو ذخیرہ کرنے کے لیے استعمال کیا جاتا ہے۔
  • سیشن پھلیاں.
مؤخر الذکر (سیشن پھلیاں) کو کئی ذیلی قسموں میں تقسیم کیا گیا ہے:
  • بے وطن (ریاست کے بغیر)؛
  • stateful (موجودہ سیشن کی حالت کی حمایت کے ساتھ)؛
  • سنگلٹن (پوری ایپلیکیشن کے لیے ایک آبجیکٹ؛ EJB 3.1 سے شروع)۔
EJB - 2 کا تعارفذیل میں ہم ہر قسم کی بین کو مزید تفصیل سے دیکھیں گے۔

سیشن پھلیاں

سیشن پھلیاں، یا سیشن پھلیاں، ایک مخصوص قسم کی پھلیاں ہیں۔ وہ کاروباری منطق کو سمیٹتے ہیں جسے کلائنٹ بین کے طریقوں کو کال کرکے پروگرام کے طور پر استعمال کرسکتا ہے۔ ایک طریقہ کال یہ کر سکتا ہے:
  • مقامی طور پر، اسی JVM میں ایک اور کلاس کے ذریعہ سیشن بین کے طور پر؛
  • دور سے، نیٹ ورک پر، ایک اور JVM سے، Java RMI (ریموٹ میتھڈ انووکیشن) ٹیکنالوجی کا استعمال کرتے ہوئے۔
لفظ "سیشن" کا مطلب یہ ہے کہ بین صرف اس وقت دستیاب ہوتا ہے جب سرور ایک مخصوص کام انجام دے رہا ہوتا ہے اور سرور کی ناکامی یا بند ہونے کی صورت میں ناقابل واپسی طور پر تباہ ہوجاتا ہے۔ سیشن بین مثال کے لائف سائیکل کو EJB کنٹینر کے ذریعے کنٹرول کیا جاتا ہے (آپ سیریز کے پہلے لیکچر میں EJB کنٹینرز کے بارے میں مزید پڑھ سکتے ہیں )۔ سٹیٹ لیس سیشن پھلیاں اپنی ریاست کے بارے میں معلومات محفوظ نہیں کرتی ہیں۔ اس قسم کے اجزاء کو مختلف کلائنٹس استعمال کر سکتے ہیں۔ اسٹیٹ لیس پھلیاں کاروباری عمل کو نافذ کرنے کے لیے استعمال کی جاتی ہیں جو ایک آپریشن میں مکمل کی جا سکتی ہیں۔ مثال کے طور پر، کلائنٹس کی کریڈٹ ہسٹری چیک کرنا۔ چونکہ ایک ہی بین مثال کو متعدد کلائنٹس استعمال کر سکتے ہیں، اس لیے ڈویلپر کو بین کے ڈیٹا تک تھریڈ سے محفوظ رسائی فراہم کرنی چاہیے۔ اس قسم کی پھلیاں بنانا (نیز تمام دیگر سیشن پھلیاں) کافی آسان ہے۔ یہ ایک باقاعدہ جاوا کلاس ہے جس میں ایک تشریح ہے @Stateless۔ آئیے ذیل میں ایک مثال دیتے ہیں:
import javax.ejb.Stateless;

@Stateless
public class StatelessEjbExample {
    public String sayHi() {
        return "Hi, I'm Stateless EJB!";
    }
}
سیشن بینز جو موجودہ سیشن کی حالت کو سپورٹ کرتے ہیں (Stateful) ایک ہی کلائنٹ کی طرف سے کال کرنے کے درمیان اپنی حالت کے بارے میں معلومات کو برقرار رکھتے ہیں اور کلائنٹ کی واضح درخواست پر اپنا وجود ختم کر دیتے ہیں۔ یہ اس حقیقت کی وجہ سے حاصل کیا گیا ہے کہ اسٹیٹفول پھلیاں ہر کلائنٹ کے لیے منفرد ہوتی ہیں۔ اس کام کی ایک مثال جس کے لیے اس قسم کی بین ذمہ دار ہو سکتی ہے ہر صارف کے لیے آن لائن اسٹور میں خریداری کی ٹوکری کو اپ ٹو ڈیٹ رکھنا ہے۔ ان پھلیوں کے لائف سائیکل کا انتظام EJB کنٹینر کے ذریعے کیا جاتا ہے۔ کلائنٹ کے باہر نکلنے پر یہ پھلیاں بھی تباہ ہو جاتی ہیں۔ اس طرح کی پھلیاں بنانا بھی کافی آسان ہے۔ یہ ایک جاوا کلاس ہے جسے تشریح کے ساتھ نشان زد کیا گیا ہے Stateful۔ ذیل کی مثال:
import javax.ejb.Stateful;

@Stateful
public class StatefulEjbExample {
    public String sayHi() {
        return "Hi, I,m Stateful EJB";
    }
}
سنگلٹن سیشن بینز درخواست کی زندگی کے دوران ایک بار شروع کیے جاتے ہیں اور درخواست کی پوری زندگی کے لیے موجود رہتے ہیں۔ اس طرح کی پھلیاں ایسے حالات کے لیے بنائی گئی ہیں جن میں ایک ریاست کو تمام کلائنٹس کے درمیان بانٹنا ضروری ہے۔ سٹیٹ لیس بینز کی طرح، اسٹینڈ لون بینز میں ڈویلپر کو اس بات کو یقینی بنانے کی ضرورت ہوتی ہے کہ بین کے اندر کا ماحول دھاگے سے محفوظ طریقے سے منظم ہو۔ آئیے ایک سنگلٹن بین کی مثال دیتے ہیں، جو اس کے ہم منصبوں کی طرح آسان ہے، جن پر اوپر بات کی گئی۔ یہ اندازہ لگانا آسان ہے کہ یہ تشریح کے ساتھ جاوا کلاس ہے @Singleton۔ تاہم، اس معاملے میں آپ کو محتاط رہنے کی ضرورت ہے۔ دو تشریحات ہیں، نحو میں یکساں، لیکن مقصد میں مختلف اور مختلف پیکجوں میں واقع ہیں:
  • javax.ejb.Singleton
  • javax.inject.Singleton
EJB بنانے کے لیے، آپ کو سے تشریح کا استعمال کرنا چاہیے javax.ejb۔ ذیل کی مثال:
import javax.ejb.Singleton;

@Singleton
public class SingletonEjbExample {
    public String sayHi() {
        return "Hi, I'm Singleton EJB!";
    }
}

Message Driven Beans

پیغام سے چلنے والی پھلیاں، یا MDBs، یا پیغام سے چلنے والی پھلیاں، جیسے سیشن بینز، کچھ کاروباری منطق کو نافذ کرتی ہیں۔ لیکن اس کے رشتہ داروں کے برعکس، MDB میں ایک اہم فرق ہے۔ کلائنٹ کبھی بھی MDB طریقوں کو براہ راست کال نہیں کرتے ہیں۔ ایسی پھلیاں اکثر JMS (جاوا میسیج سروس) کے پیغامات کے سامعین کے طور پر کام کرتی ہیں اور سسٹم کے حصوں کے درمیان غیر مطابقت پذیر پیغامات کے تبادلے کو منظم کرنے کے لیے کام کرتی ہیں۔ اس طرح کے پیغام کی ایک مثال خودکار ریٹیل سسٹم سے سپلائی مینجمنٹ سسٹم تک انوینٹری کی ترسیل کی درخواست ہوگی۔ ذیل میں MDB بین کی ایک مثال ہے۔ سیشن پھلیاں کے برعکس، اس کی تخلیق تھوڑی زیادہ دلچسپ ہے:
import javax.annotation.Resource;
import javax.ejb.MessageDriven;
import javax.ejb.MessageDrivenContext;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

@MessageDriven(mappedName = "jms/TestQueue")
public class MessageDrivenEjbExample implements MessageListener {

    @Resource
    private MessageDrivenContext messageDrivenContext;

    public void onMessage(Message message) {
        try {
            if (message instanceof TextMessage) {
                TextMessage msg = (TextMessage) message;
                msg.getText();
            }
        } catch (JMSException e) {
            messageDrivenContext.setRollbackOnly();
        }
    }

}
تشریح MessageDrivenہماری MDB کلاس کو بین بنا دیتی ہے۔ تشریح کے اندر، JNDI (JNDI کے بارے میں یہاں پڑھیں ) کا استعمال کرتے ہوئے، JMS تقسیم کا نام طے کیا جاتا ہے، جس پر ہماری کلاس سننے والی بن جاتی ہے۔ اس کے علاوہ، ہماری کلاس انٹرفیس MessageListenerاور اس کے طریقہ کار کو نافذ کرتی ہے onMessage۔ اس طریقہ کو تب کہا جائے گا جب کوئی پیغام قطار/تقسیم سے تشریح کے اندر بیان کردہ نام کے ساتھ آئے گا MessageDriven۔

ہستی پھلیاں

EJB ٹیکنالوجی کا حصہ JPA تفصیلات ہے۔ JPA، یا Java Persistence API، ایک تصریح ہے جو جاوا آبجیکٹ (اینٹیٹی بینز) کی آبجیکٹ-ریلیشنل میپنگ (ORM) فراہم کرتی ہے اور ایسی اشیاء کو ذخیرہ کرنے، بازیافت کرنے اور ان کا انتظام کرنے کے لیے API فراہم کرتی ہے۔ JPA آپ کو جاوا آبجیکٹ کے بطور ڈیٹا بیس سے ڈیٹا کی نمائندگی کرنے کے ساتھ ساتھ جاوا آبجیکٹ کو ڈیٹا بیس میں ریکارڈ کے طور پر محفوظ کرنے کی اجازت دیتا ہے۔ ہر طبقہ ایسی چیز کے طور پر کام نہیں کر سکتا، لیکن Entity beans۔ Entity Bean ایک جاوا کلاس ہے جو ڈیٹا بیس میں ٹیبل کی نمائندگی کرتی ہے۔ ڈسپلے (میپنگ) خصوصی تشریحات کے استعمال کے ذریعے حاصل کیا جاتا ہے۔ ان کی مدد سے جاوا کلاس کا موازنہ ڈیٹا بیس میں موجود ٹیبل سے کیا جاتا ہے، اسی طرح جاوا کلاس کے فیلڈز کا موازنہ ڈیٹا بیس ٹیبل کے فیلڈز سے کیا جاتا ہے۔ کوڈ میں تبصروں کے ساتھ، ہستی بین کی ایک مثال یہ ہے:
@Entity // Делает данный класс Entity бином
@Table(name = "employee") // "Связывает" данный класс с таблицей employee в БД
public class Employee implements Serializable {

    @Id // Говорит о том, что поле ниже является первичным ключом
    @GeneratedValue(strategy = GenerationType.AUTO) // Определяет тип генерации значений первичного ключа
    private int id;

    @Column(name="name") // "Связывает" поле ниже с полем name в таблице employee в БД
    private String name;

    @Column (name="age") // "Связывает" поле ниже с полем age в таблице employee в БД
    private int age;

    // getters and setters...
}
یہ بات قابل غور ہے کہ اس قسم کی بین کا مطالعہ صرف JPA تفصیلات کا مطالعہ کرنے کے تناظر میں کرنا سمجھ میں آتا ہے۔

درخواست لکھنا: EJB HelloWorld

اس سیکشن میں، ہم ایک چھوٹی Java EE HelloWorld ایپلی کیشن لکھیں گے، جسے ہم GlassFish سرور پر تعینات کریں گے۔ اس مضمون کو پڑھنے سے پہلے، ہم پرزور مشورہ دیتے ہیں کہ آپ اپنے مقامی ماحول کو ترتیب دینے سے متعلق مضمون کو پڑھیں ۔
  1. IntelliJ IDEA میں ایک نیا Maven پروجیکٹ بنائیں۔

    فائل -> نیا -> پروجیکٹ...

    EJB - 3 کا تعارف
  2. اگلا پر کلک کریں ۔

  3. Maven پروجیکٹ کے پیرامیٹرز کو بھریں:

    EJB کا تعارف - 4
  4. ختم پر کلک کریں ۔

  5. پروجیکٹ بنایا گیا ہے اور اس کا ڈھانچہ درج ذیل ہے:

    EJB - 5 کا تعارف
pom.xml فائل اس طرح نظر آتی ہے: EJB - 6 کا تعارفسب سے پہلے، ہمیں Java EE API پر انحصار شامل کرنے کی ضرورت ہے، اور ویب ایپلیکیشن آرکائیو (جنگ) کی شکل میں اپنے پروجیکٹ کی پیکیجنگ کو بھی واضح کرنا ہوگا۔ ایسا کرنے کے لیے، آپ کو pom.xml کوڈ کو درج ذیل فارم میں تبدیل کرنا ہوگا۔
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.javarush.lectures</groupId>
    <artifactId>ejb_demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0</version>
        </dependency>
    </dependencies>

</project>
اگلا، آپ جاوا کوڈ پر جا سکتے ہیں۔ ہماری درخواست سب سے آسان ہوگی۔ ہمارے پاس 1 سرولیٹ اور 1 EJB ہوگا۔ یہ ایک سٹیٹ لیس سیشن بین ہو گا۔ EJB کے اندر ہم صرف 1 طریقہ بیان کریں گے جو سٹرنگ "Hello World" کو لوٹائے گا۔ سب سے پہلے، آئیے ایک پیکج بناتے ہیں com.javarush.lectures۔ پھر، پیکج کے اندر com.javarush.lectures، ہم اپنی بین - DemoEJB بنائیں گے۔ بین کوڈ ذیل میں دیا گیا ہے:
import javax.ejb.Stateless;

@Stateless
public class DemoEJB {
    public String helloWorld() {
        return "Hello world!";
    }
}
جیسا کہ پہلے کہا گیا ہے، سب کچھ بہت آسان ہے. ہمارا اگلا مرحلہ ایک سرولیٹ بنانا ہے جو HTTP درخواست کے جواب کے طور پر EJB سے قدر کو پاس کرے گا۔ یہ بات قابل غور ہے کہ سرولیٹ اس مضمون کا موضوع نہیں ہیں، لیکن پھر بھی آپ کو EJB کو ظاہر کرنے کے لیے ان کا استعمال کرنے کی ضرورت ہوگی۔ ایسا کرنے کے لیے، آئیے DemoServletEJB کے اسی پیکیج میں ایک نیا سرولیٹ بنائیں۔ اس کا کوڈ درج ذیل ہے:
@WebServlet("/helloWorld")
public class DemoServlet extends HttpServlet {

    @EJB
    private DemoEJB ejb;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().write(ejb.helloWorld());
    }
}
کوڈ پر کچھ مختصر تبصرے یہ ہیں۔ خلاصہ @WebServlet("/helloWorld")- ہماری کلاس کو ایک سرولیٹ کے طور پر بیان کرتا ہے جو HTTP درخواستوں کو اختتامی نقطہ تک پروسیس کرے گا /helloWorld۔ ہماری کلاس کا ایک فیلڈ ہے DemoEJB ejb۔ یہ ہماری بین پہلے بیان کی گئی ہے۔ کلاس فیلڈ پر ایک تشریح — @EJBانحصار انجیکشن (DI) انجام دیتی ہے۔ وہ. ضرورت پڑنے پر ejb متغیر خود بخود ایک نئی مثال کے ساتھ شروع ہو جاتا ہے۔ ہماری کلاس HttpServlet کی اولاد ہے اور سپر کلاس طریقوں میں سے ایک کو اوور رائیڈ کرتی ہے - doGet۔ یہ طریقہ HTTP GET درخواستوں پر کارروائی کرتا ہے اور دو پیرامیٹرز لیتا ہے - HttpServletRequestاور HttpServletResponse. HttpServletRequestآنے والی HTTP درخواست کے بارے میں معلومات حاصل کرنے کا کام کرتا ہے۔ HttpServletResponseدرخواست کا جواب پیدا کرنے کی ضرورت ہے۔ PrintWriterطریقہ کار کے اندر، ہم جوابی آبجیکٹ ( HttpServletResponse) سے آبجیکٹ حاصل کرتے ہیں getWriter()۔ اگلا، ہم استعمال کر کے نتیجے میں آنے والی چیز پر کچھ قدر لکھ سکتے ہیں write۔ جو، درحقیقت، وہ ہے جسے ہم PrintWriter-a آبجیکٹ میں لکھ کر استعمال کرتے ہیں EJB سے حاصل کی گئی قدر جس کی ہم نے تعریف کی ہے (قدر سٹرنگ ہے "Hello World!")۔ HTTP درخواست بھیجنے والے کلائنٹ کو اس کی درخواست کے جواب کے طور پر یہ قیمت ملے گی۔ اگلا مرحلہ GlassFish Java EE سرور پر ایپلیکیشن لانچ کرنا ہے۔ ایسا کرنے کے لیے، ہم ایک نئی ترتیب بنائیں گے، جیسا کہ مقامی ماحول کو ترتیب دینے کے مضمون میں بیان کیا گیا ہے ۔ ذیل میں موجودہ پروجیکٹ کے لیے مکمل کنفیگریشن کا اسکرین شاٹ ہے۔ اس بات کو یقینی بنائیں کہ شروع کرنے سے پہلے آپ کے پاس GlassFish سرور انسٹال ہے: لانچ کنفیگریشن بنانے کے بعد، Run -> Run 'ejb_demo' مینو یا Shift+F10EJB - 7 کا تعارف ہاٹکی کا استعمال کرتے ہوئے ایپلیکیشن لانچ کریں ۔ لانچ کے بعد، آپ اس کے لاگز دیکھ سکتے ہیں: اور وہ براؤزر بھی جو کھلتا ہے: یہ سب اس بات کی نشاندہی کرتا ہے کہ ایپلیکیشن حسب منشا کام کرتی ہے۔ EJB - 8 کا تعارفEJB - 9 کا تعارف

نتیجہ

اس مضمون میں ہم EJB - Enterprise JavaBeans سے واقف ہوئے۔ ہم نے سوالات پر غور کیا جیسے:
  • EJB کیا ہے؟
  • ای جے بی کی تاریخ
  • EJBs کی مختلف اقسام
یاد رکھیں کہ EJBs مندرجہ ذیل اقسام میں آتے ہیں:
  • Message Driven Beans (پیغام سے چلنے والی پھلیاں)؛
  • Entity Beans - JPA (Java Persistence API) اداروں کی تفصیلات میں بیان کیا گیا ہے اور ڈیٹا کو ذخیرہ کرنے کے لیے استعمال کیا جاتا ہے۔
  • سیشن پھلیاں:
    • بے ریاست (بغیر ریاست)
    • ریاستی (موجودہ سیشن کی حالت کی حمایت کے ساتھ)
    • سنگلٹن (پوری درخواست کے لیے ایک آبجیکٹ؛ EJB 3.1 سے شروع)
ہم نے EJB کا استعمال کرتے ہوئے ایک چھوٹی HelloWorld ایپلیکیشن بھی لکھی۔ بطور PD، آپ اس مضمون کے عملی حصے کو خود دہرا سکتے ہیں۔ اور پھر اپنی درخواست میں دو مزید سرولیٹس شامل کریں جو قیمت وصول کرنے کے لیے اسٹیٹفول اور سنگلٹن بینز استعمال کریں گے۔
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION