Posted: Thu Jul 10, 2014 5:29 am Post subject: وب سرویس webservice در جاوا Java
وب سرویس: یک نرم افزار سیستمی طراحی شده برای پشتیبانی ارتباط دو ماشین با یکدیگر روی شبکه می باشد.
وب سرویس یک اینترفیس برای نرم افزار شما بحساب می آید.
کاربر می تواند با یک اینترفیس وبی یا یک کلاینت قوی (دسکتاپی) بعنوان واسط کاربری برای نرم افزار ما باشد. حالا وب سرویس را هم بعنوان یک اینترفیس دیگر در نظر بگیرید. با این تفاوت که این اینترفیس برای نرم افزارهاست نه برای بشر.
وب کلاینت بصورت مستقیم از طریق اینترفیس با نرم افزار ارتباط برقرار می کند.
وب سرویس هم بعنوان یک اینترفیس برای برنامه نویس های نرم افزار عمل می کند.
استفاده از وب سرویس بعنوان API به برنامه نویسان این امکان را می دهد که سیستم های خارجی با نرم افزارشان ارتباط برقرار کنند.
وب سرویس ها دو دسته می شوند:
SOAP
RESTful
وب سرویس های SOAP :
ُ
Simple Object Access Protocol
ارتباط وب سرویس و کلاینت از طریق پیام های XML می باشد. SOAP قوانین ارتباطی را تعیین می کندمثل اینکه هر تگ XML برای چه چیزی استفاده شده است و معنی آن چیست.
وب سرویس های RESTful :
این وب سرویس ها با استفاده از معماری HTTP یا پروتوکل های مشابه با محدود کردن اینترفیس برای استفاده از عملیات استاندارد مشابه GET Post put delete در http. می باشد. بنظر من RESTful ها راحت تر برنامه نویسی میشوند.
WSDL
Web Services Description Language
یکی از کامپوننت های اصلی وب سرویس ها می باشد. یک فایل xml که وب سرویس را از لحاظ تکنیکی برای ماشین تشریح می کند. در این فایل اطلاعات زیر است:
Port یا آدرسURL وب سرویس که باید به آن دست یابیم.
فرمت پیام ورودی
فرمت پیام خروجی
پروتکل امنیتی که باید لحاظ شود مثل Https
منبع Javapapers
Posted: Thu Jul 10, 2014 5:59 am Post subject: آموزش وب سرویس با Netbeans در جاوا
در این آموزش با استفاده از netbeans می خواهیم یک وب سرویس خیلی ساده بنویسیم:
یک پروژه جدید از نوع Web Application بسازید.وب سرور همان glassfish باشد و JavaEE 6 به پیشفرض ها دست نزنید.
حالا یک پروژه ساخته می شود که Hello World دارد. اسم پروژه را من گذاشتم SOAPParsx
یک بار پروژه را اجرا کنید تا صفحه hello world بیاید و تا اینجا مطمئن باشیم مشکلی نیست.
حالا روی پروژه کلیک راست کنید و گزینه New web service را انتخاب کنید.
نام وب سرویس را HelloWorld بگذارید و پکیج را com.parsx.webservice بگذارید.
تمام شد!
حالا برای اینکه متوجه بشید IDE براتون چه کار کرده می توانید سورس را از قسمت source packages نگاه کنید یک فایل HelloWorld.java ساخته و در پوشه Web Services یک فایل HelloWorld هست که به همون فایل اشاره می کنه.
حالا پروژه را اجرا کنید ...
آدرس ذیل را در مرورگر بزنید:
http://localhost:8080/SOAPHelloWorld/HelloWorld?wsdl
مشاهده می کنید که فایل wsdl در این مسیر قرار دارد.
این فایل شامل تعاریف xml
اسکیمای XSD ایمپورت
دو تگ پیام شامل hello و helloReponse ( request, response)
تعریف نوع پورت شامل عمل hello
تعریف سرویس نام پورت و آدرس برای فراخوانی
حالا می خواهیم از این وب سرویس استفاده کنیم .
باز روی پروژه کلیک راست کنید و اینبار web service client را انتخاب کنید :
قسمت WSDL URL را انتخاب کنید و آدرس ذیل را وارد کنید:
http://localhost:8080/SOAPHelloWorld/HelloWorld?wsdl
قسمت package هم نام com.parsx.webserviceclient بدهید.
حالا در صفحه Index.jsp که هستید ذیل Hello World در قسمت تگ Body کلیک راست کنید و گزینه call web service operation را بزنید و hello را انتخاب کنید.
در مجموعه کدی که ایجاد شده خط ذیل را اصلاح کنید:
java.lang.String name = "parsx.com";
برای درک خوب فرآیند حتما سورس را بازنگری کنید و تغییرات را متوجه شوید.
Posted: Thu Jul 10, 2014 6:00 am Post subject: کد اضافه شده به Index.jsp
<%
try {
com.parsx.webserviceclient.HelloWorld_Service service = new com.parsx.webserviceclient.HelloWorld_Service();
com.parsx.webserviceclient.HelloWorld port = service.getHelloWorldPort();
// TODO initialize WS operation arguments here
java.lang.String name = "parsx.com";
// TODO process result here
java.lang.String result = port.hello(name);
out.println("Result = "+result);
} catch (Exception ex) {
// TODO handle custom exceptions here
}
%>
Posted: Thu Jul 10, 2014 6:29 am Post subject: چرا JSON جای XML
مصرف کنندگان و کلاینت های وب سرویس ها بصورت افزایشی از جاوا اسکریپت و علی الخصوص از jQuery استفاده می کنند. این کلاینت ها ترجیح می دهند از JSON مخفف JavaScript Object Notation جای XML استفاده کنند چرا که JSON متنی می باشد که شی JavaScript را نمایش می دهد. یک کلاینت جاوااسکریپتی وقتی یک آرایه از محصولات را دریافت می کند اگر محصول دریافتی با JSON باشد خوب بالطبع پردازش کمتری لازم دارد چون با جاوا اسکریپت معمولی هم می شود این را پردازش کرد حال آنکه اگر با XML دریافت شود باید لود تبدیل آن را متحمل شویم.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum