بحث را با ساخت 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 .
ساخت كلاس DukesBirthdayBean1. از قسمت پروژه ها 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 خواهيم پرداخت.