ایجاد فایل service.xml

بازدید : 468

یک فایل به نام service.xml در پوشه WEB-INF پروژه تان ایجاد کنید. این فایل محتوی تعاریف جدول خواهد بود. شما این فایل را با همه اطلاعاتی که Service Builder احتیاج دارد تا SQL تولید کند تا جدول ایجاد شود پر خواهید کرد- برای همه دیتابیس ها لایفری پشتیبانی می کند- همچنین می توانید از اشیاء تداومی دیتابیس در کد جاوا استفاده کنید.

با ساده ترین جدول آغاز خواهید کرد: تولید {Product}. از کدی که در زیر می آید استفاده کنید تا جدول را برای Service Builder تعریف کنید.

 

لیست ۱٫۱   تعریف یک جدول با استفاده از Service Builder:

<?xml version=”1.0″ encoding=”UTF-8″ ?>
<!DOCTYPE service-builder PUBLIC
➥ “-//Liferay//DTD Service Builder 6.0.0//EN”
➥ “http://www.liferay.com/dtd/liferay-service-builder_6_0_0.dtd”>
<service-builder package-path=”com.inkwell.internet.productregistration”>
<author>Rich Sezov</author>
<namespace>PR</namespace>
<entity name=”PRProduct” local-service=”true” remote-service=”false”>
<column name=”productId” type=”long” primary=”true” />
<column name=”productName” type=”String” />
<column name=”serialNumber” type=”String” />
<column name=”companyId” type=”long” />
<column name=”groupId” type=”long” />
<order by=”asc”>
<order-column name=”productName” />
</order>
<finder name=”G_PN” return-type=”Collection”>
<finder-column name=”groupId” />
<finder-column name=”productName” />
</finder>

<finder name=”GroupId” return-type=”Collection”>
<finder-column name=”groupId” />
</finder>
<finder name=”CompanyId” return-type=”Collection”>
<finder-column name=”companyId” />
</finder>
</entity>
</service-builder>

docroot/WEB-INF/service.xml

خواندن این فایل نسبتاً آسان است، بنابراین بخش به بخش به جای خط به خط درباره آن توضیح می دهیم.

 

اطلاعات جهانی

می توانید بسته جاوا را که Service Builder در آن کد تولید می کند  تعریف کنید که به این جدول ۱ دیتابیس نیرو می بخشد. همچنین Service Builder، Javadoc را تولید می کند و نامی که در تگ های Author در ۱ قرار می دهید در Javadoc به عنوان نویسنده کد به نتیجه می رسد. به طور پیش فرض جداولی با Service Builder تعریف می کنید به دیتابیس لایفری می رود. برای اینکه از بقیه جداول لایفری آنها را متمایز کنید می توانید آنها را پیشوند با یک نام فاصله دار بدهید. این جدول زمانی که ایجاد می شود در دیتابیس PR-   PRProduct نامیده می شود.

تعریف یک موجودیت

حالا به یک چیز خوب می رسیم. موجودیت دیتابیس- اینجا یک PRProduct- با استفاده از تگ ۲ Entity تعریف می شود. دو پارامتر در این تگ تعریف می کند که چگونه می خواهید Service Builder سرویس را تولید کند که این موجودیت ها را بازیابی و ذخیره می کند. شما نیاز دارید که حداقل یک سرویس محلی داشته باشید. اما می توانید یک سرویس خوب remote هم داشته باشید. این یک EJB نیست: به جای آن یک سرویس وب سایت است که با سند WSDL کامل می شود و آن را توضیح می دهد بنابراین ممکن است سرویس شما به عنوان بخشی از یک Service Oriented Architecture (SOA) شرکت کند.

 

تعریف ستون ها

آنچه که باقیمانده تعریف ستون های ۳ و روشهای یابنده ۴ است. اولین ستون به عنوان کلید ابتدایی در دیتابیس تعریف شده است. دیگر فیلدهایی که می خواهید ذخیره کنید بعد از این می آید و به عنوان Strings تعریف می شوند. دو کلید خارجی نیز تعریف می کنید: ID شرکت و ID گروه، توجه داشته باشید که نیم DBA این دو فیلد کلید خارجی را در جداول مشخص کنید اما در هر صورت آنها را اضافه می کنید. این کار را انجام می دهید زیرا DBA ها طرز کار داخلی لایفری هنگامی که این جدول را طراحی کردند نمی دانستند. این فیلدها برای لایفری داخلی هستند و برای اهداف متنی در پورتلت های بدون نمونه استفاده می شوند. ID شرکت با نمونه پورتال مطابقت دارد که کاربر هدایت کرده است و ID گروه با اجتماع یا سازمانی که کاربر هدایت کرده است مطابقت دارد. چون شما از این فیلدها به عنوان پارامترهایی در همه query هااستفاده خواهید کرد این پورتلت دیتای متفاوتی در پورتال ها، اجتماعات و سازمان های متفاوت خواهد داشت. تست سریع: از اطلاعاتی که بیان شد و بدون خواندن جمله بعدی پورتلت ها یک پورتلت دارای نمونه یا بدون نمونه است؟ پورتلت ما یک پورتلت بدون نمونه است چون ما این فیلدها را استفاده خواهیم کرد تا مطمئن شویم که پورتلت تمام دیتاها را به پورتال و اجتماع یا سازمان که پورتلت قرار گرفته است گره می زند.

بعد ترتیب پیش فرض موجودیت را زمانی که آنها را از دیتابیس بازیابی کردید تعریف کنید. می توانید انتخاب کنید که آنها را با ترتیب صعودی یا نزولی برگردانید. شما به یک ستون محدود نمی شوید؛ می توانید چندین ستون را مشخص کنید و ترتیب با اولویت نظم ستون ها اتفاق خواهد افتاد.

تعیین روشهای یابنده

روشهای یابنده ۴ که موضوعات را بازیابی می کند در بعدی نمایان خواهد شد. مشخص کردن این یابنده ها به معنی این است که Service Builder به طور اتوماتیک روش ها را تولید می کند که موضوعات را از دیتابیس با استفاده از پارامترهایی که در یابنده مشخص می کنید بازیابی می کند. به طور مثال اولین یابنده محصولات را با ID گروه و نام محصول باز می گرداند. حالا که جدول را تعیین کردید زمان اجرای Service Builder است.

 

 

اجرای Service Builder:

فایل service.xml را ذخیره کنید و سپس تسک Ant به نام build-service را اجرا کنید. چندین فایل تولید می شود و کار با پیغام BUILD SUCCESSFUL کامل می شود. اگر از یک IDEاستفاده می کنید که فایل های منبع را بطور اتوماتیک گرد هم می آورد (به غیر از IDE لایفری که یک دکمه راحت Build Services دارد) ناگهان خواهید دید که خطاها در پروژه تان ظاهر می شوند. نگران آن نباشید: برطرف کردن آن آسان است.

آنچه که اتفاق افتاده است این است که Service Builder چندین فایل منبع جاوا تولید کرده است. برخی از آنها در پوشه src قرار دارد. برای برطرف کردن خطاها در پروژه از امکانات IDE استفاده کنید تا پوشه منبع دیگری به پروژه اضافه کنید بنابراین کلاسها در آن پوشه برای امکانات چک کردن خطاهای IDE در دسترس هستند. به طور مثال برای انجام این کار در Eclipse، روی پروژه راست کلیک کنید، properties را انتخاب کنید، Java Build Path را انتخاب کنید و از تب Source پوشه منبع خدمات جدید را اضافه کنید. هنگامی که این کار را انجام دادید، خطاها از بین خواهند رفت. اگر از IDE لایفری استفاده می کنیداحتیاج ندارید که این کار را انجام دهید.

Service Builder منبعی را که تولید می کند به دو لایه تقسیم می نماید: لایه interface و لایه implementation. لایه اینترفیس در پوشه خدمات مزبور ایجاد می شود. در لایه اینترفیس هیچ چیز را بصورت دستی تغییر نخواهید داد. همیشه Service Builder کدی را تولید می کند که در آنجا پیدا می شود. لایه implementation در پوشه src تولید می شود و در ابتدا اسکلت کد است که به شما اجازه می دهد قابلیتی که نیاز دارید را اجرا کنید.

متوجه خواهید شد یک فایل جدید نیز در ریشه پوشه src به نام service.properties وجود دارد. این فایل نیز به وسیله Service Builder تولید شده است. آن فایل محتوی ویژگی هایی است که Service Builder در زمان اجرا نیاز دارد تا وظایفش را اجرا کند. مهمترین این ویژگی ها لیست فایل های پیکربندی Spring است که ان نیز تولید شده است.

ساخت جدید دیگر که تولید شده پوشه META-INF در پوشه src است. این پوشه محتوی همه فایل های پیکربندی Spring و پیکربندی Hibernate است.این بدان معناست که Service Builder از همه پیکربندی تداومی دیتابیس مراقبت می کند. اگر تاکنون از Hibernate به تنهایی یا با ترکیبی از Spring استفاده کرده باشید می دانید چندین فایل پیکربندی وجود دارد که بین آن دو تردستی کنید. Service Builder بطور اتوماتیک همه آن را برایتان پیکربندی می کند و کلاسهای با ثباتی فراهم می کند که می توانید برای اجرای همه وظایف تداومی دیتابیس استفاده کنید. Service Builder هم لایه Data Access Object (DAO) و هم لایه Data Transfer Object (DTO) را بطور اتوماتیک فراهم می کند. گام بعدی تامین قابلیت در DTO است تا کد پورتلت را از وابستگی به هر چیزی که با دیتابیس های SQL دارد محافظت کند.

نظرات :0 نظر

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.