« ساخت وب سرويس DukesAge | صفحه اصلی | ساخت firstcup Web Client »

ساخت firstcup Enterprise Application

December 31, 2007 02:17 PM

بحث را با ساخت firstcup Enterprise Application پي مي گيريم. اين Enterprise Application همانگونه كه در تصوير نيز مشخص است شامل يك Web Application و يك EJB است.

ساخت پروژه
1. از منوي فايل New Project را انتخاب كنيد.
2. از Category ها گزينه Enterprise را انتخاب كنيد.
3. از پروژه ها Enterprise Application را انتخاب نماييد.
4. Next را كليك كنيد.
5. نام پروژه را firstcup قرار دهيد.
6. Location پروژه را مسير فولدر myexample كه قبلا ساخته ايد قرار دهيد.
7. بقيه تنظيمات موجود را تغيير ندهيد و روي Finish كليك كنيد.

تنظيم Context Root
اين مرحله براي فراهم نمودن امكان شناسايي WebApp در J2EE server است.
1. از قسمت پروژه ها firstcup را بازكنيد
2. روي گزينه application.xml از Configuration Files دبل كليك نماييد.
3. در اين فايل عنصر context-root را بيابيد.
4. مقدار موجود را از firstcup_war به firstcup تغيير دهيد و فايل را ذخيره كنيد.
5. در قسمت قسمت پروژه ها، روي firstcup-war كليك راست كنيد و properties را انتخاب نماييد.
6. از category ها، Run را انتخاب كنيد.
7. مسير Context را به firstcup/ تغيير دهيد و OK را كليك كنيد.

ساخت Enterprise Bean

اين Enterprise Bean يك Stateless session bean است. منظور اين است كه نيازي به تعامل با client و نگهداري state جاري ندارد. به عبارت ديگر درخواست هاي ارسالي به اين Bean هيچ وابستگي به حالت قبلي و بعدي client ندارد.
اين Enterprise Bean شامل دو كلاس است : يكي DukesBirthdayBean و ديگري DukesBirthdayRemote .

ساخت كلاس DukesBirthdayBean
1. از قسمت پروژه ها firstcup-ejb را انتخاب كنيد.
2. از منوي فايل گزينه New File را انتخاب نماييد.
3. از category ها Enterprise را انتخاب نماييد.
4. از قسمت File Types گزينه Session Bean را انتخاب نماييد.
5. Next را کليک کنيد.
6. نام EJB را DukesBirthdayBean قرار دهيد.
7. نام Package را com.sun.firstcup.ejb وارد نماييد.
8. Session Type را مساوي stateless قرار دهيد.
9. تيک فيلد Local را برداريد و Remote را تيک بزنيد.
10. Finish را کليک کنيد.

اصلاح کدهاي DukesBirthdayBean.java
اين کلاس حاوي کدهايي است که تفاوت سال سن Duke و کاربر را محاسبه مي نمايد.
1. ابتدا Constructor پيش فرض را که NetBeans ايجاد کرده، حذف کنيد.
2. در درون بدنه کلاس، کدهاي زير را کپي نماييد.

private static Logger logger = Logger.getLogger("com.sun.firstcup.ejb.DukesBirthdayBean");
    
public int getAgeDifference(Date date){
    int ageDifference;
        
    Calendar theirBirthday = new GregorianCalendar();
    Calendar dukesBirthdaye = new GregorianCalendar(1995,Calendar.MAY,23);
        
    // Set the Calendar object to the passed in Date
    theirBirthday.setTime(date);
        
    // Subtract the user's age from Duke's age
    ageDifference = dukesBirthdaye.get(Calendar.YEAR) - theirBirthday.get(Calendar.YEAR);
    logger.info("Raw ageDifference is: "+ageDifference);
    // Check to see if Duke's birthday occurs before the user's. If so, 
    // subtract one from the age difference
    if (dukesBirthdaye.before(theirBirthday) && (ageDifference > 0)){
        ageDifference--;
    }
    logger.info("Final ageDifference is: "+ageDifference);
       
    return ageDifference;
}

3. روي اديتور کليک راست کنيد و Fix Imports را انتخاب نماييد.
4. java.util.date را براي کلاس date و java.util.logging.logger را براي کلاسlogger انتخاب نماييد و OK را کليک کنيد.
5. روي بدنه متد getAgeDifference کليک راست کنيد و از منوي EJB Methods گزينه Add to Remote Interface را انتخاب کنيد.
6. فايل را ذخيره کنيد.

اصلاح کد DukesBirthdayRemote.java
اين كلاس بعنوان رابط كلاس DukesBirthdayBean عمل مي كند و اجزاي Web Tier براي دسترسي به DukesBirthdayBean از DukesBirthdayRemote استفاده خواهند كرد.
اين كلاس توسط NetBeans ايجاد مي شود. شما فقط بايد تغييرات لازم را در آن اعمال كنيد. بدين ترتيب:
1. ماژول firstcup-ejb را از قسمت پروژه ها باز کنيد.
2. روي DukesBirthdayRemote.java در پکيچ com.sun.firstcup.ejb دبل کليک کنيد.
3. پس از باز شدن فايل ، روي اديتور کليک راست کرده و گزينه Fix Imports را انتخاب کنيد.
4. براي کلاس Date گزينه java.util.Date را انتخاب کنيد.
5. در صورتي که دستور throws در تعريف متد وجود داشت، آن را حذف نماييد.
6. فايل را ذخيره کنيد.

با ساخت EJB پياده سازي Business Tier از معماري پايان يافت.
در ادامه به پياده سازي ماژول هاي Web Tier خواهيم پرداخت.

mahyar_ev | 02:17 PM

 

نظرخواهی

نظر شما چيست؟










Remember personal info?




برای ثبت نظر کلمه submit را در کادر زیر وارد کنید.