« September 2007 | صفحه اصلی | November 2007 »
مروري بر XMLOctober 29, 2007 09:20 AM
قبل از ادامه بحث ارتباط جاوا و XML ترجيح دادم اول كمي به معرفي XML و مفاهيم مرتبط با آن بپردازم. البته مي دانم كه احتمالا با آن آشنا هستيد. با اين حال شايد مرور دوباره مفاهيم آن بد نباشد. مطالب را از w3schools برداشته ام.
XML يا Extensible Markup Language امكاني است براي توصيف داده ها. عبارت است از يك فايل متني با پسوند XML كه با هر اديتور متني قابل ويرايش است. شيوه نگارش آن در ادامه شرح داده خواهد شد.
برخي مشخصات XML :
* مانند HTML است اما تگ هاي آن از پيش تعريف شده نيستند و كاربر، خود بايد آنها را تعريف نمايد.
* از DTD يا يك XML Schema براي توصيف داده ها استفاده مي كند.
تفاوت اصلي XML و HTML اين است كه HTML بر چگونگي نمايش داده ها تاكيد دارد. در حالي كه XML محتواي داده ها را توصيف مي كند. در واقع XML مكملي است بر HTML. نه جايگزين آن
كاربردهاي XML :
* با XML داده ها خارج از HTML نگهداري مي شوند.
* XML براي جابجايي داده ها به كار مي رود.
* XML براي به اشتراك گذاري داده ها به كار مي رود
* XML براي ذخيره سازي داده هاي به كار مي رود
* در واقع XML باعث مي شود كه داده هاي شما پركاربرد تر باشند
* XML مي تواند براي ساخت يك زبان جديد به كار رود. XML مادر زبان هايي چون WAP و WML است.
سينتكس :
سينتكس XML بسيار ساده است
مثال:
XML يا Extensible Markup Language امكاني است براي توصيف داده ها. عبارت است از يك فايل متني با پسوند XML كه با هر اديتور متني قابل ويرايش است. شيوه نگارش آن در ادامه شرح داده خواهد شد.
برخي مشخصات XML :
* مانند HTML است اما تگ هاي آن از پيش تعريف شده نيستند و كاربر، خود بايد آنها را تعريف نمايد.
* از DTD يا يك XML Schema براي توصيف داده ها استفاده مي كند.
تفاوت اصلي XML و HTML اين است كه HTML بر چگونگي نمايش داده ها تاكيد دارد. در حالي كه XML محتواي داده ها را توصيف مي كند. در واقع XML مكملي است بر HTML. نه جايگزين آن
كاربردهاي XML :
* با XML داده ها خارج از HTML نگهداري مي شوند.
* XML براي جابجايي داده ها به كار مي رود.
* XML براي به اشتراك گذاري داده ها به كار مي رود
* XML براي ذخيره سازي داده هاي به كار مي رود
* در واقع XML باعث مي شود كه داده هاي شما پركاربرد تر باشند
* XML مي تواند براي ساخت يك زبان جديد به كار رود. XML مادر زبان هايي چون WAP و WML است.
سينتكس :
سينتكس XML بسيار ساده است
مثال:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note date="12/11/2006">
<to>You</to>
<from>me</from>
<heading>Reminder</heading>
<body>Don't forget</body>
</note>
<note date="12/11/2006">
<to>You</to>
<from>me</from>
<heading>Reminder</heading>
<body>Don't forget</body>
</note>
اولين خط آن هميشه XML declaration است كه ورژن و character encoding به كار رفته در سند XML را مشخص مي كند.
خط بعدي عنصر ريشه يا root element را مشخص مي نمايد. عنصر ريشه ماهيت سند XML را مشخص مي كند. مثل اينكه مي گوييم اين سند يك note است.
نكات:
* همه تگ هاي XML بايد بسته شوند و اين اجباري است.
* تگ هاي XML همه case sensitive هستند. بنابراين تگ هاي باز و بسته بايد عينا يكسان نوشته شوند. به عبارت ديگر مثلا تگ <message> نمي تواند با <Message/> بسته شود.
* ساختار تو درتوي تگ ها بايد به درستي رعايت شود.
* همه اسناد XML الزاما بايد داراي عنصر ريشه باشند . بقيه عناصر درون آن قرار داده شوند.
* در دو طرف value همه attribute هاي سند XML بايد كوتيشن قرار گيرد. هم مي تواند single quote باشد و هم double quote
* فضاي خالي يا space رشته ها در سند XML پاك نمي شود.
comment در XML
خط بعدي عنصر ريشه يا root element را مشخص مي نمايد. عنصر ريشه ماهيت سند XML را مشخص مي كند. مثل اينكه مي گوييم اين سند يك note است.
نكات:
* همه تگ هاي XML بايد بسته شوند و اين اجباري است.
* تگ هاي XML همه case sensitive هستند. بنابراين تگ هاي باز و بسته بايد عينا يكسان نوشته شوند. به عبارت ديگر مثلا تگ <message> نمي تواند با <Message/> بسته شود.
* ساختار تو درتوي تگ ها بايد به درستي رعايت شود.
* همه اسناد XML الزاما بايد داراي عنصر ريشه باشند . بقيه عناصر درون آن قرار داده شوند.
* در دو طرف value همه attribute هاي سند XML بايد كوتيشن قرار گيرد. هم مي تواند single quote باشد و هم double quote
* فضاي خالي يا space رشته ها در سند XML پاك نمي شود.
comment در XML
<!-- This is a comment -->
عناصر XML
بين عناصر XML رابطه پدر و فرزندي حاكم است.
بين عناصر XML رابطه پدر و فرزندي حاكم است.
<book>
<title>My First XML</title>
<prod id="33-657" media="paper"></prod>
<chapter>Introduction to XML
<para>What is HTML</para>
<para>What is XML</para>
</chapter>
<title>My First XML</title>
<prod id="33-657" media="paper"></prod>
<chapter>Introduction to XML
<para>What is HTML</para>
<para>What is XML</para>
</chapter>
<chapter>XML Syntax
<para>Elements must have a closing tag</para>
<para>Elements must be properly nested</para>
</chapter>
<para>Elements must have a closing tag</para>
<para>Elements must be properly nested</para>
</chapter>
</book>
محتواي element ها داراي چهار حالت است:
* element content : مثل book
* mixed content : مثل chapter
* simple content : مثل para
* empty content : مثل prod
در مثال بالا تنها prod داراي attribute است.
قواعد نامگذاري element ها:
* اسامي شامل حروف و اعداد و برخي كاراكترهاي ديگر مي شوند
* اسامي نبايد با عدد يا كاراكترهاي نقطه گذاري شروع شوند
* اسامي نبايد با عبارت xml يا XML يا Xml و ساير حالات XML شروع شود
* اسامي نبايد space داشته باشد
* اسامي نبايد ":" داشته باشند
اسامي element ها بهتر است گويا و توصيفي باشند.
كجا از element استفاده شود و كجا از attribute ؟
هيچ قانوني براي اين كار وجود ندارد. اما كلا استفاده از element ها در جاهايي كه نمي توان تمايزي بين اين دو قائل شد، توصيه مي شود. بهتر است هميشه داده ها را در element ها گنجاند. attribute ها را صرفا براي فراهم نمودن اطلاعات در مورد داده ها (metadata) مقداردهي نماييد.
بعنوان برخي مشكلات استفاده از attribute مي توان اين موارد را برشمرد:
* attribute ها نمي توانند چند مقدار بپذيرند
* attribute ها توسعه دادنشان سخت تر است.
* attribute ها قابليت نمايش structure ها را ندارند.
* كار با attribute ها در برنامه سخت تر است.
* attribute ها در تقابل با DTD تست كردنشان سخت تر است.
يك استثناء:
شناسه يا كد داده ها مثل counter اي كه بصورت سريال بالا مي رود را مي توان در attribute ها هم قرارداد.
XML با سينتكس درست Well Formed XML ناميده مي شود.
XML كه با DTD اعتبارسنجي شده ، Valid XML خوانده مي شود.
* element content : مثل book
* mixed content : مثل chapter
* simple content : مثل para
* empty content : مثل prod
در مثال بالا تنها prod داراي attribute است.
قواعد نامگذاري element ها:
* اسامي شامل حروف و اعداد و برخي كاراكترهاي ديگر مي شوند
* اسامي نبايد با عدد يا كاراكترهاي نقطه گذاري شروع شوند
* اسامي نبايد با عبارت xml يا XML يا Xml و ساير حالات XML شروع شود
* اسامي نبايد space داشته باشد
* اسامي نبايد ":" داشته باشند
اسامي element ها بهتر است گويا و توصيفي باشند.
كجا از element استفاده شود و كجا از attribute ؟
هيچ قانوني براي اين كار وجود ندارد. اما كلا استفاده از element ها در جاهايي كه نمي توان تمايزي بين اين دو قائل شد، توصيه مي شود. بهتر است هميشه داده ها را در element ها گنجاند. attribute ها را صرفا براي فراهم نمودن اطلاعات در مورد داده ها (metadata) مقداردهي نماييد.
بعنوان برخي مشكلات استفاده از attribute مي توان اين موارد را برشمرد:
* attribute ها نمي توانند چند مقدار بپذيرند
* attribute ها توسعه دادنشان سخت تر است.
* attribute ها قابليت نمايش structure ها را ندارند.
* كار با attribute ها در برنامه سخت تر است.
* attribute ها در تقابل با DTD تست كردنشان سخت تر است.
يك استثناء:
شناسه يا كد داده ها مثل counter اي كه بصورت سريال بالا مي رود را مي توان در attribute ها هم قرارداد.
XML با سينتكس درست Well Formed XML ناميده مي شود.
XML كه با DTD اعتبارسنجي شده ، Valid XML خوانده مي شود.
mahyar_ev | 09:20 AM | Comment(s)(2)
Binding بين XML Schema و كلاس هاي جاواOctober 15, 2007 12:31 PM
اين كار در جاوا با JAXB يا Java Architecture for XML Binding انجام مي شود. يك implementation از JAXB شامل بخش هاي زير است:
• Schema compiler: يك XML schema را به مجموعه اي از عناصر داخل برنامه bind مي كند. رويه Binding توسط يك زبان مبتني بر XML تعريف مي شود.
• Schema generator: مجموعه اي از عناصر موجود در برنامه را به يك XML schema مرتبط (map) مي كند.
• Binding runtime framework : امكان عمليات marshaling (نوشتن به) و unmarshaling (خواندن از) محتواي XML را فراهم مي كند.
مراحل كلي در انجام رويه data binding با JAXB عبارت است از:
1- ساخت كلاس ها: در اين مرحله JAXB binding compiler يك XML schema را بعنوان ورودي دريافت مي كند و بر اساس آن كلاس هاي JAXB را مي سازد.
2- كامپايل كلاس ها: همه كلاس هاي ساخته شده به همراه source و كد application بايد كامپايل شوند.
3- Unmarshalling: توسط JAXB binding framework اسناد XML اي كه مطابق schema نوشته شده اند، Unmarshal مي گردند.
4- ساخت درخت محتوا: نتيجه Unmarshaling ساخت يك درخت از data object هايي است كه نمونه هايي از كلاس هاي JAXB ساخته شده، هستند. اين درخت محتوا ساختار و محتواي اسناد XML منبع را نمايش مي دهند.
5- اعتبارسنجي: اين مورد اختياري است و مي تواند انجام نشود. اما اگر مثلا تغييري در درخت محتوا ايجاد كنيد (آنگونه كه در مرحله بعدي گفته شده) لازم است كه قبل از Marshaling يا بازگرداندن محتوا به اسناد XML ، با استفاده از عمليات validation موجود در JAXB، صحت و اعتبار آنها را بررسي نماييد.
6- پردازش محتوا: application مي تواند داده هاي XML نمايش داده شده در درخت محتوا را ويرايش نمايد.
7- Marshalling: در نهايت درخت محتوا بايد به يك يا چند سند XML خروجي ، منتقل شود. همانگونه كه ذكر شد اين محتوا ممكن است قبل از انجام عمل Marshaling اعتبارش سنجيده شود.
در ادامه برخي از مفاهيم ذكر شده براي آشنايي بيشتر، معرفي مي گردد:
XML schema :
نوع سند XML را تعريف مي كند. معمولا بصورت شرايطي (constraints) كه بر ساختار و محتواي XML بايد اعمال شود، بيان مي گردد. زبان هاي گوناگوني براي بيان XML Schema وجود دارد. شناخته شده ترين آنها زبان Document Type Definition يا DTD است كه در واقع بعنوان يكي از ويژگي هاي XML شناخته مي شود. اين زبان قابليت هاي محدودي دارد، اما كاربردهاي ديگري نيز علاوه بر تعريف XML schema دارد. دو زبان ديگر پركاربرد در حوزه تعريف XML schemaعبارتند از XML schema (W3C) و RELAX NG
XML Data binding:
اين عبارت اشاره دارد به فرايند نمايش اطلاعات موجود در يك سند XML بصورت يك object در حافظه كامپيوتر. اين كار به application امكان مي دهد كه مستقيما و بدون استفاده از DOM به داده هاي XML دست يابد.
Marshaling:
Marshaling كه همچنين با عنوان serialization نيز شناخته مي شود، عبارت است از فرايند تبديل يك object موجود در حافظه به يك فرمت داده قابل انتقال يا ذخيره سازي (مثلا يك فايل). Marshaling در JAXB به application امكان مي دهد كه object هاي JAXB را به داده هاي XML تبديل نمايد.
Unmarshalling:
عمل معكوس Marshaling نيز Unmarshaling يا deserialization ناميده مي شود كه عبارت است از استخراج يك ساختمان داده از يك فايل (يا يك سري از بايت ها). Unmarshaling در JAXB به application اين امكان را مي دهد كه داده هاي XML را به object هاي JAXB تبديل كند.
ادامه دارد...
• Schema compiler: يك XML schema را به مجموعه اي از عناصر داخل برنامه bind مي كند. رويه Binding توسط يك زبان مبتني بر XML تعريف مي شود.
• Schema generator: مجموعه اي از عناصر موجود در برنامه را به يك XML schema مرتبط (map) مي كند.
• Binding runtime framework : امكان عمليات marshaling (نوشتن به) و unmarshaling (خواندن از) محتواي XML را فراهم مي كند.
مراحل كلي در انجام رويه data binding با JAXB عبارت است از:
1- ساخت كلاس ها: در اين مرحله JAXB binding compiler يك XML schema را بعنوان ورودي دريافت مي كند و بر اساس آن كلاس هاي JAXB را مي سازد.
2- كامپايل كلاس ها: همه كلاس هاي ساخته شده به همراه source و كد application بايد كامپايل شوند.
3- Unmarshalling: توسط JAXB binding framework اسناد XML اي كه مطابق schema نوشته شده اند، Unmarshal مي گردند.
4- ساخت درخت محتوا: نتيجه Unmarshaling ساخت يك درخت از data object هايي است كه نمونه هايي از كلاس هاي JAXB ساخته شده، هستند. اين درخت محتوا ساختار و محتواي اسناد XML منبع را نمايش مي دهند.
5- اعتبارسنجي: اين مورد اختياري است و مي تواند انجام نشود. اما اگر مثلا تغييري در درخت محتوا ايجاد كنيد (آنگونه كه در مرحله بعدي گفته شده) لازم است كه قبل از Marshaling يا بازگرداندن محتوا به اسناد XML ، با استفاده از عمليات validation موجود در JAXB، صحت و اعتبار آنها را بررسي نماييد.
6- پردازش محتوا: application مي تواند داده هاي XML نمايش داده شده در درخت محتوا را ويرايش نمايد.
7- Marshalling: در نهايت درخت محتوا بايد به يك يا چند سند XML خروجي ، منتقل شود. همانگونه كه ذكر شد اين محتوا ممكن است قبل از انجام عمل Marshaling اعتبارش سنجيده شود.
در ادامه برخي از مفاهيم ذكر شده براي آشنايي بيشتر، معرفي مي گردد:
XML schema :
نوع سند XML را تعريف مي كند. معمولا بصورت شرايطي (constraints) كه بر ساختار و محتواي XML بايد اعمال شود، بيان مي گردد. زبان هاي گوناگوني براي بيان XML Schema وجود دارد. شناخته شده ترين آنها زبان Document Type Definition يا DTD است كه در واقع بعنوان يكي از ويژگي هاي XML شناخته مي شود. اين زبان قابليت هاي محدودي دارد، اما كاربردهاي ديگري نيز علاوه بر تعريف XML schema دارد. دو زبان ديگر پركاربرد در حوزه تعريف XML schemaعبارتند از XML schema (W3C) و RELAX NG
XML Data binding:
اين عبارت اشاره دارد به فرايند نمايش اطلاعات موجود در يك سند XML بصورت يك object در حافظه كامپيوتر. اين كار به application امكان مي دهد كه مستقيما و بدون استفاده از DOM به داده هاي XML دست يابد.
Marshaling:
Marshaling كه همچنين با عنوان serialization نيز شناخته مي شود، عبارت است از فرايند تبديل يك object موجود در حافظه به يك فرمت داده قابل انتقال يا ذخيره سازي (مثلا يك فايل). Marshaling در JAXB به application امكان مي دهد كه object هاي JAXB را به داده هاي XML تبديل نمايد.
Unmarshalling:
عمل معكوس Marshaling نيز Unmarshaling يا deserialization ناميده مي شود كه عبارت است از استخراج يك ساختمان داده از يك فايل (يا يك سري از بايت ها). Unmarshaling در JAXB به application اين امكان را مي دهد كه داده هاي XML را به object هاي JAXB تبديل كند.
ادامه دارد...
mahyar_ev | 12:31 PM | Comment(s)(0)
استفاده از Web Service در برنامهOctober 1, 2007 12:49 PM
در مطلب قبل چگونگي ايجاد يك Web Service را ديديم. در اين مطلب يك Web Service Client خواهيم ساخت كه از Web Service ساخته شده در قسمت قبل استفاده كند. براي اينكار ما همچنان ازJavaEE 5 و NetBeans IDE 5.5 استفاده خواهيم نمود.
مراحل كار:
1- ساخت يك Web Application
همانگونه كه در مطلب قبل نيز توضيح داده شد براي ساخت يك Web Application بايد پس از اجراي NetBeans IDE از منوي File منوي New Project را انتخاب نماييد. با اين كار فرم ديگري باز مي شود. در فرم مذكور از قسمت Web گزينه Web Application را انتخاب كرده، دكمه Next را بفشاريد. در مرحله بعدي، نام پروژه و مسير آن را مشخص كنيد و دكمه Finish را بزنيد.
نكته: اجباري نيست كه براي استفاده از Web Service حتما يك Web Application داشته باشيد. مي توان Web Service را از داخل هر Application جاوا فراخواني كرد. در اينجا بعنوان نمونه از Web Application براي اين كار استفاده شده است.
2- ساخت يك package
در NetBeans روي پروژه راست كليك كرده، گزينه New و سپس Java Package را انتخاب نماييد. در فرمي كه باز مي شود نام package را WSClientPac وارد كنيد. همچنين فيلد location را Source Package قرار دهيد. در انتها دكمه Finish را فشار دهيد.
3- ساخت يك Web Service Client
روي پروژه راست كليك كرده، گزينه New و سپس Web Service client را انتخاب نماييد. فرمي باز مي شود. در اين فرم اولا گزينه WSDL URL را انتخاب كنيد و مسير فايل wsdl مربوط به Web Service را در باكس مقابل آن وارد كنيد. همچنين فيلد package را با WSClientPac پر كنيد. دكمه Finish را در پايان فشار دهيد. اگر خطايي رخ ندهد، با اين كار در مسير پروژه فولدري به نام Web Service Refrences ايجاد مي شود كه مشخصات Web Service Client مربوطه را در خود دارد.
سوال: فايل wsdl چيست و چطور آن را بيابيم؟
wsdl مخفف Web Service Description Language ، فايلي است به فرمت XML كه مشخصات Web Service را در خود دارد. براي استفاده از Web Service بايد مسير فايل wsdl آن را بدانيد. همه توليد كنندگان Web Service اين مسير را در اختيار استفاده كنندگان قرار مي دهند.
در مورد Web Service اي كه در قسمت قبل ساختيم، براي پيدا كردن مسير اين فايل، روي Web Service مربوطه راست كليك كنيد و گزينه peoperties را انتخاب كنيد. مسير wsdl در پايين اين صفحه نوشته شده است. اين مسير بايد چنين باشد:
مراحل كار:
1- ساخت يك Web Application
همانگونه كه در مطلب قبل نيز توضيح داده شد براي ساخت يك Web Application بايد پس از اجراي NetBeans IDE از منوي File منوي New Project را انتخاب نماييد. با اين كار فرم ديگري باز مي شود. در فرم مذكور از قسمت Web گزينه Web Application را انتخاب كرده، دكمه Next را بفشاريد. در مرحله بعدي، نام پروژه و مسير آن را مشخص كنيد و دكمه Finish را بزنيد.
نكته: اجباري نيست كه براي استفاده از Web Service حتما يك Web Application داشته باشيد. مي توان Web Service را از داخل هر Application جاوا فراخواني كرد. در اينجا بعنوان نمونه از Web Application براي اين كار استفاده شده است.
2- ساخت يك package
در NetBeans روي پروژه راست كليك كرده، گزينه New و سپس Java Package را انتخاب نماييد. در فرمي كه باز مي شود نام package را WSClientPac وارد كنيد. همچنين فيلد location را Source Package قرار دهيد. در انتها دكمه Finish را فشار دهيد.
3- ساخت يك Web Service Client
روي پروژه راست كليك كرده، گزينه New و سپس Web Service client را انتخاب نماييد. فرمي باز مي شود. در اين فرم اولا گزينه WSDL URL را انتخاب كنيد و مسير فايل wsdl مربوط به Web Service را در باكس مقابل آن وارد كنيد. همچنين فيلد package را با WSClientPac پر كنيد. دكمه Finish را در پايان فشار دهيد. اگر خطايي رخ ندهد، با اين كار در مسير پروژه فولدري به نام Web Service Refrences ايجاد مي شود كه مشخصات Web Service Client مربوطه را در خود دارد.
سوال: فايل wsdl چيست و چطور آن را بيابيم؟
wsdl مخفف Web Service Description Language ، فايلي است به فرمت XML كه مشخصات Web Service را در خود دارد. براي استفاده از Web Service بايد مسير فايل wsdl آن را بدانيد. همه توليد كنندگان Web Service اين مسير را در اختيار استفاده كنندگان قرار مي دهند.
در مورد Web Service اي كه در قسمت قبل ساختيم، براي پيدا كردن مسير اين فايل، روي Web Service مربوطه راست كليك كنيد و گزينه peoperties را انتخاب كنيد. مسير wsdl در پايين اين صفحه نوشته شده است. اين مسير بايد چنين باشد:
4- ايجاد يك كلاس براي فراخواني Web Service و نوشتن كدهاي لازم
روي پروژه راست كليك كرده و New و سپس Java Class را انتخاب كنيد. نام كلاس را HelloClient وارد كنيد. همچنين فيلد Package را هم با WSClientPac مقداردهي كنيد. دكمه Finish را بزنيد.
بدين ترتيب فابل HelloClient.java ساخته مي شود كه حاوي كدهاي اوليه تعريف كلاس است. كدهاي لازم را به اين فايل اضافه كنيد تا نهايتا محتويات فايل به اين صورت شود:
روي پروژه راست كليك كرده و New و سپس Java Class را انتخاب كنيد. نام كلاس را HelloClient وارد كنيد. همچنين فيلد Package را هم با WSClientPac مقداردهي كنيد. دكمه Finish را بزنيد.
بدين ترتيب فابل HelloClient.java ساخته مي شود كه حاوي كدهاي اوليه تعريف كلاس است. كدهاي لازم را به اين فايل اضافه كنيد تا نهايتا محتويات فايل به اين صورت شود:
package WSClientPac;
import javax.xml.ws.WebServiceRef;
import WSClientPac.TestWebService;
import WSClientPac.TestWebServiceService;
import WSClientPac.TestWebService;
import WSClientPac.TestWebServiceService;
public class HelloClient {
static TestWebServiceService service = new TestWebServiceService();
public HelloClient() {}
public String getHello(String name){
String result="";
try{
TestWebService port = service.getTestWebServicePort();
result = port.sayHello(name);
} catch (Exception e){
result = e.toString();
}
return result;
}
}
static TestWebServiceService service = new TestWebServiceService();
public HelloClient() {}
public String getHello(String name){
String result="";
try{
TestWebService port = service.getTestWebServicePort();
result = port.sayHello(name);
} catch (Exception e){
result = e.toString();
}
return result;
}
}
5- فراخواني متد getHello
در قسمت body فايل index.jsp واقع در فولدر Web Pages دستورات زير را اضافه نماييد:
در قسمت body فايل index.jsp واقع در فولدر Web Pages دستورات زير را اضافه نماييد:
<%@ page import="WSClientPac.HelloClient" %>
<% HelloClient hc = new HelloClient(); %>
<p><%= hc.getHello("JavaBorder") %> </p>
<% HelloClient hc = new HelloClient(); %>
<p><%= hc.getHello("JavaBorder") %> </p>
6- اجراي برنامه
با F6 برنامه را اجرا كرده و نتيجه را در Browser ببينيد. اگر خطايي رخ ندهد، در خروجي بايد پيغام "Hello, JavaBorder" را ببينيد. البته فراموش نكنيد كه قبل از اجراي برنامه Web Service را Deploy نماييد.
با F6 برنامه را اجرا كرده و نتيجه را در Browser ببينيد. اگر خطايي رخ ندهد، در خروجي بايد پيغام "Hello, JavaBorder" را ببينيد. البته فراموش نكنيد كه قبل از اجراي برنامه Web Service را Deploy نماييد.