در این مقاله قصد توضیح این مورد را دارم که چگونه Entityهایی از وب سرویس بسازیم که بتوانیم به راحتی از آنها در مدل خود استفاده نماییم. در این مقاله مراحل کامل ایجاد یک وب سرویس و یک مدل مبتنی بر وب سرویس را آموزش خواهم داد.
شرح
در این آموزش ما نیاز به ایجاد دو Application داریم. یک Application که همان وب سرویس ما می باشد وظیفه ارايه عملیاتهای CRUD کارمندان را بر عهده دارد. Application دوم در واقع مصرف کننده وب سرویس می باشد که Entityهای مبتنی بر وب سرویس ما درون آن قرار دارد. ما برای این مثال از پایگاه داده HR موجود در Oracle XE استفاده می نمایم و در برنامه مصرف کننده وب سرویس ترکیبی از مدل مبتنی بر جداول پایگاه داده و وب سرویس استفاده می نماییم و صفحه ای طراحی می نماییم که لیست دپارتمانها و کارمندان هر دپارتمان را نمایش می دهد که لیست کارمندان از طریق وب سرویس دریافت شده است.
برنامه اول: ایجاد وب سرویس با استفاده از ADF BC
ابتدا یک برنامه که شامل یک پروژه مدل می باشد ایجاد میکنیم. سپس به صورت معمول Entity و View جدول کارمندان را ایجاد می نماییم و آنرا به Application Module اضافه می نماییم و آنرا تست می نماییم تا از صحت کارکرد آن مطمئن شویم. ( به منظور جلوگیری از طولانی شدن این مقاله از توضیح این مراحل خودداری شده است)
حال باید آن را به صورت یک وب سرویس آماده نماییم تا در سرور Deploy نماییم. برای این کار بر روی Application Module کلیک نمایید و آنرا باز نمایید. سپس به بخش مربوط به Service Interface رفته و بر روی دکمه بعلاوه سبز رنگ کلیک نمایید تا ویزارد مربوط به ایجاد وب سرویس آغاز گردد.
برای نام Web Service مقدار EmployeeWS را وارد نمایید و دکمه Next را کلیک نمایید. در مرحله بعد نیز دکمه Next را کلیک نمایید. در مرحله سوم View کارمندان که ساخته شده است را ملاحظه خواهید نمود آنرا انتخاب نمایید و آن را با استفاده از دکمه ای که در کنار آن ملاحظه می نمایید به سمت راست منتقل نمایید. پس از این کار در زیر آن لیستی از عملیات هایی که می توان بر روی کارمندان انجام داد را مشاهده می نمایید که همه آنها را انتخاب نمایید.
پس از انجام مراحل بالا دکمه Next را کلیک نماید. آخرین مرحله به شما خلاصه ای از مراحل گذشته نمایش داده می شود و با کلیک بر روی دکمه Finish تنظیمات و فایل های مربوط به وب سرویس ایجاد می شود.
پس از ایجاد در زیر Application Module پوشه ای با نام service Interface ایجاد می شود که درون آن فایلهای مربوط به وب سرویس قرار دارد. بر روی فایل EmployeeWSImpl.java کلیک نمایید و Run را انتخاب نمایید تا وب سرویس بر روی weblogic قرار گیرد و آماده اجرا گردد. در صورتی که مشکلی پیش نیاید و وب سرویس به درستی اجرا گردد در کنسول لاگ یک لینک در اختیار شما قرار خواهد گرفت که با کلیک بر روی آن صفحه ای برای شما باز می شود که این امکان را به شما خواهد داد تا سرویس خود را تست نمایید و از صحت کارکرد آن خیالتان آسوده گردد. (همانند تصویر زیر)
آدرس دسترسی به فایل WSDL سرویس شما برابر خواهد بود
[left]http://localhost:7101/webservice-employeeasws-context-root/employeews?wsdl[/left]
می توانید برای اطمینان از صحت آدرس خود آنرا در browser تست نمایید.
تا اینجا برنامه ای که قرار است لیست کارمندان را به صورت وب سرویس در اختیارتان قرار دهد آماده شده است و نوبت آن رسیده است تا برنامه ی اصلی که قرار است وب سرویس را مصرف نماید آماده نمایید.
برنامه دوم: ایجاد یک مصرف کننده وب سرویس
همانند تمام برنامه های Fusion Web Application که تا به امروز ایجاد کردیده اید یک برنامه جدید در Jdeveloper ایجاد نمایید. پس از آن Entity و view مربوط به دپارتمانها را از روی جدول Department بسازید. سپس مجدد بر روی پروژه مدل خود راست کلیک نمایید و گزینه New Entity Object را انتخاب نمایید. در ویزاردی که برای ایجاد Entity باز میشود در پایین آن گزینه Service Interface را انتخاب نمایید و آدرس زیر را که مربوط به وب سرویس کارمندان می باشد درون آن قرار دهید.
[left]http://localhost:7101/webservice-employeeasws-context-root/employeews?wsdl[/left]
* دقت نمایید که آدرس را با توجه به سیستم خود تغییر دهید.
همانطور که در تصویر بالا ملاحظه می نمایید در صورت درست بودن آدرس و صحت اجرای وب سرویس نام EmployeeVO1 از وب سرویس استخراج شده و در قسمت Service View Instance نمایش داده می شود.
تا رسیدن به مرحله ۵ ویزارد، دکمه Next را کلیک نمایید و همه چیز را به صورت پیش فرض رها کنید. در مرحله ۵ گزینه Generate Default View Object را انتخاب نمایید تا View Object آن نیز ساخته شود. سپس دکمه Next را تا پایان ویزارد کلیک نمایید و در نهایت نیز Finish را کلیک کرده و منتظر باشید تا Jdeveloper بقیه کارها را برای شما انجام دهد.
حال یک View Link بین دپارتمان و کارمندان به صورت کاملا معمولی که تا به حال در سایر مدل ها می ساختید، ایجاد نمایید تا بتوانید حالت Master-Detail را برای دپارتمان و کارمندان داشته باشید. سپس یک Application Module با نام ConsumerModel ایجاد نماید و View Objectهای خود را به آن اضافه نمایید.
در ViewController یک صفحه ایجاد نمایید و دپارتمان و کارمندان مربوط به آن را به صفحه اضافه نمایید. به دلیل آن که این مراحل همانند همه برنامه های عادی که تا به حال ساخته اید، می باشد از توضیح آنها خودداری می نمایم.
در پایان قبل از اینکه بخواهید برنامه را اجرا نمایید باید تنظیمات زیر را در فایل connection.xml پروژه اضافه نمایید. این فایل در قسمت Application Resources در زیر Descriptors و ADF META-INF قابل دسترسی می باشد.
EmployeeWSBean#com.my.common.serviceinterface.EmployeeWS</p> <p>weblogic.jndi.WLInitialContextFactory</p> <p>t3://localhost:7101</p> <p>admin</p> <p>admin123</p> <p>EmployeeWS.xsd</p> <p>com/my/common/serviceinterface/</p>
فقط اطلاعات مربوط به قسمتهای jndiProviderURL ، jndiSecurityPrincipal و jndiSecurityCredentials اطلاعات مربوط به سیستم خودتان را وارد نماید. JndiSecurityPrincipal و jndiSecurityCredentials منظور همان username و password مربوط به weblogic می باشد. در ضمن اگر شما از packaging خود را نیز تغییر داده اید و همانند com.my که من استفاده کرده ام نمی باشد باید تغییرات لازم را در کدهای بالا بدهید تا با خطا روبرو نگردید.
سپس به پروژه وب سرویس خود بروید و بر روی مدل آن راست کلیک نمایید و Project Properties را انتخاب نمایید. در منوی سمت چپ به قسمت Deployment بروید و از قسمت سمت راست این منو گزینه New را انتخاب نمایید. در پنجره باز شده Archive Type را برابر با Business Components Service Interface انتخاب نمایید و مقدار bcEmployeeWI را برای نام آن وارد نمایید و در نهایت همه پنجره ها را ok نمایید. مجدد بر روی مدل راست کلیک نمایید و در منوی Deploy بر روی bcEmployeeWI کلیک نمایید تا فایلهای مربوط ایجاد گردد. این عمل شما باعث شد تا دو Jar فایل با نام های bcEmployeeWI_Common.jar و bcEmployeeWI_MiddleTier.jar در پوشهDeploy در مسیر مدل پروژه WebService ایجاد گردد.
حال شما بایدapplication مربوط به مصرف کننده وب سرویس (WSConsumer)را مجددا باز نمایید و فایل bcEmployeeWI_Common.jar را که در مرحله قبل در پروژه WebService ساخته اید را به عنوان یک library به آن اضافه نماید. برای این کار بر روی پروژه مدل برنامه WSConsumer راست کلیک نمایید منوی project properties را انتخاب نمایید. در منوی سمت چپ Libraries and Classpath را انتخاب نمایید و دکمه Add jar/Directory را کلیک نمایید سپس در مسیر پروژه WebService وارد پوشه پروژه مدل و سپس Deploy شوید و فایل bcEmployeeWI_Common.jar را انتخاب نمایید و همه پنجره ها را OK نمایید.
نکته آخر اینکه این پروژه ها را باید در سرور SOA-Enabled اجرا نمایید تا با خطایی روبرو نگردید. برای نحوه راه اندازی اینگونه سرورها می توانید به مستندات مربوط به Oracle SOA Suite 11g مراجعه نمایید.
تبریک می گویم شما تمام مراحل مورد نیاز را با موفقیت پشت سر گذاشتید و کافیست برنامه خود را تست نمایید
این مثال با استفاده از JDeveloper 11.1.1.5 و SOA Suite 11.1.1.5 نوشته و تست شده است.
امیدوارم که این مطلب برایتان مفید بوده باشد.
فایل PDF
فایل مثال






نظر خود را وارد کنید: