الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الواب سارفس (web services)

بدأه sousou12 في 18 يوليو 2012 · 9 رد · 1,378 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم.

انا عندي مشكلة في الواب سارفس هي اني لم اجد مثالي واقعي عنهم فكل مثال اجده عبارة عن hello world او عملية الجمع و الطرح, وعندما افكر في امثلة اخرى لا اعرف كيف ابرمجها (مثل حجز الطيران او الفنادق).

من فضضلكم ساعدوني فانا مبتدأ في هذا المجال و شكرا.

#2

هل فهمت جيدا الـــ Web services ؟

تفضل هذا المثال :

package webservice;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.jws.WebService;

/**
 *
 * @author b
 */
@WebService(endpointInterface="webservice.Bibliotheque",serviceName="BiblioService",portName="BiblioPort")
public class BiblioImpl implements Bibliotheque {
HashMap<Long, Livre> list = new HashMap<Long, Livre>();

    @Override
    public List<Livre> find(String titre) {
        List<Livre> l = new ArrayList<Livre>();
        for(Map.Entry<Long,Livre> paire: list.entrySet()){
            if(paire.getValue().getTitre().equalsIgnoreCase(titre))
                l.add(paire.getValue());
        }
        return l;
    }

    @Override
    public void add(long ISBN, String titre, String auteur) {
        Livre l= new Livre(titre, auteur);
        list.put(ISBN, l);
    }

    @Override
    public List<Livre> allBooks() {
         List<Livre> l= new ArrayList<Livre>();
         l.addAll(list.values());
         return l;
    }

    @Override
    public HashMap<Long, Livre> findAll() {
        return list;
    }

}

package webservice;
import webservice.Bibliotheque;


import javax.xml.ws.Endpoint;

/**
 *
 * @author b
 */
public class BiblioPublisher {
    public static void main(String[] args){
        BiblioImpl bib = new BiblioImpl();
        Endpoint end =Endpoint.publish("http://127.0.0.1:2012/BiblioService", bib);
        System.out.println(end.isPublished());
    }
}

package webservice;


import java.util.HashMap;
import java.util.List;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
/**
 *
 * @author b
 */
@WebService
@SOAPBinding(style= Style.DOCUMENT)
public interface Bibliotheque {
    List<Livre> find(String titre);
    void add(long ISBN, String titre, String auteur);
    List<Livre> allBooks();
    HashMap<Long,Livre>  findAll();
}

package webservice;

/**
 *
 * @author b
 */
public class Livre {
    private String titre;
    private String auteur;

    public Livre() {
    }



    public Livre(String titre, String auteur) {
        this.titre = titre;
        this.auteur = auteur;
    }

    public void setAuteur(String auteur) {
        this.auteur = auteur;
    }

    public void setTitre(String titre) {
        this.titre = titre;
    }

    public String getAuteur() {
        return auteur;
    }

    public String getTitre() {
        return titre;
    }
}

package webservice;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;

/**
 *
 * @author b
 */
public class Client1 {
     public static void main(String[] args) throws MalformedURLException{
         URL wsdl= new URL("http://127.0.0.1:2012/BiblioService?wsdl");
         String ns = "http://webservice/";
         String serviceName = "BiblioService";
         QName qn = new QName(ns,serviceName );
         Service service = Service.create(wsdl, qn);
         Bibliotheque stub=service.getPort(Bibliotheque.class);
         stub.add(123l, "web services", "kachna");
         stub.add(1234l, "XML", "Lakhdar");
         stub.add(1235l, "java", "aaaa");
         List<Livre> list=stub.allBooks();
         for(Livre l: list){
             System.out.println(l.getAuteur());
             System.out.println(l.getTitre());
         }
     }
}

تم تعديل هذه المشاركة بواسطة guendouzbachir في 18 يوليو 2012 في 15:09

Just Be Nice

#3

شكرا جزيلا على الاهتمام و الرد اخي guendouzbachir

ان اود ان يكون المثال على حجز الطيران او الفنادق لان مشروعي معقد نوعا ما, حيث اني يجب ا ادخل semantic ( اضن ان ترجمة بالعربية هي سيمياء) و كذلك system multi agent (العملاء)

#4

طلبك غير واضح ...

فالويب سيرفس لحجز تزاكر الطيران لا تختلف كثيرا عن ال hello world ...

ما يعنيك هنا هو ال concept العام ....

1
#5

شكرا جزيلا على التفاعل,

انل اعلم لكن مشكلتي تكمن في انه في حجز تذاكر الطيران كل واب سرفس لديه العديد من fonction ou procedure و انا لا اعرف كيف اذهب لكل procedure بالاضافة اني بحاجة لاكثر من واب سارفس واحد وكلهم بحاجة لوضع ملف wsdl في juddi و بحاجة ايضا للبحث عن الواب سارفس المناسب

#6

اعتقد انك ممكن ان تضع كل احتياجاتك فى ويب سيرفس واحده فقط

لما تعدد الـويب سيرفس

Software Developer
Mahmoudkelany.com


 

#7

سوف اقول لك لما التعدد,

لنفرض انه لدينا عدة شركات للطيران و ثمن التذكرة يختلف بحسب الوجهة وكذا حسب شركة الطيران لذا كل شركة لها واب سارفس خاص بها و عن طريق الواب سارفس تعرض شركة الطيران خدماتها

#8
sousou12 كتب:

سوف اقول لك لما التعدد,

لنفرض انه لدينا عدة شركات للطيران و ثمن التذكرة يختلف بحسب الوجهة وكذا حسب شركة الطيران لذا كل شركة لها واب سارفس خاص بها و عن طريق الواب سارفس تعرض شركة الطيران خدماتها

يمكن وضع واب سرفايس واحد يعرض كل الشركات الطيران :happy: ...

ضع لنا نص المشكل أو التمرين اللي أنت تبرمج فيه + ضع محاولتك لكي نفهم أكثر :happy:

Just Be Nice

#9

حسب فهمي لما تريد، فانا اختلق معك في التصميم

فالشركه واسعارها و رحلاتها اليوميه شتكون في قواعد البيانات

ووضيفة الويب سيرفس

* هي جلب هذه البيانات فقط، بناء علي اسم الشركه او كود الشركه.

* وظيفة اخري للويب سيرفش مثلا اضافة حجز

* و غيرها من الوظائف.....

كل وظيفه تكون في method

1
#10

السلام عليكمة

شكرا على التفاعل،

انا اود ان اعمل عدة واب سارفس وهذا لحفضهم في UDDI و بعد ذلك حسب احتياجات الطلب نختار الواب سارفس المناسب

مواضيع مشابهة