Default এবং Custom Endpoint Mapping

Spring Web Services এবং Message Dispatching - স্প্রিং ওয়েব সার্ভিসেস (Spring Web Services) - Java Technologies

289

Endpoint Mapping কী?

স্প্রিং ওয়েব সার্ভিসেসে Endpoint Mapping হল একটি প্রক্রিয়া যেখানে SOAP বার্তা প্রক্রিয়াকরণের জন্য নির্দিষ্ট এন্ডপয়েন্ট নির্বাচন করা হয়। এটি SOAP রিকোয়েস্টের ভিত্তিতে সঠিক মেথড বা ক্লাসে রিকোয়েস্ট রাউট করে। স্প্রিং-WS ডিফল্ট এবং কাস্টম উভয় ধরনের এন্ডপয়েন্ট ম্যাপিং সমর্থন করে।


Default Endpoint Mapping

স্প্রিং-WS ডিফল্টভাবে বার্তা হ্যান্ডলিংয়ের জন্য PayloadRootQNameEndpointMapping ব্যবহার করে। এটি SOAP বার্তার Payload Root QName (Qualified Name) ব্যবহার করে নির্দিষ্ট এন্ডপয়েন্টে রিকোয়েস্ট পাঠায়।

কনফিগারেশন

ডিফল্ট এন্ডপয়েন্ট ম্যাপিং ব্যবহার করার জন্য নিচের ধাপগুলো অনুসরণ করা হয়:

  1. Endpoint ক্লাস তৈরি
    @Endpoint অ্যানোটেশন ব্যবহার করে একটি এন্ডপয়েন্ট তৈরি করতে হয়।

    উদাহরণ:

    @Endpoint
    public class EmployeeEndpoint {
        private static final String NAMESPACE_URI = "http://example.com/webservice";
    
        @PayloadRoot(namespace = NAMESPACE_URI, localPart = "GetEmployeeRequest")
        @ResponsePayload
        public GetEmployeeResponse getEmployee(@RequestPayload GetEmployeeRequest request) {
            GetEmployeeResponse response = new GetEmployeeResponse();
            response.setName("John Doe");
            response.setSalary(75000);
            return response;
        }
    }
    
  2. SOAP রিকোয়েস্ট অনুযায়ী রুট নির্ধারণ
    @PayloadRoot অ্যানোটেশন ব্যবহার করে রিকোয়েস্ট রুট এবং নেমস্পেস সংজ্ঞায়িত করতে হবে।

ডিফল্টের সুবিধা

  • সহজে কনফিগার করা যায়।
  • ছোট প্রকল্পের জন্য কার্যকর।
  • কমপ্লেক্সিটি কম এবং দ্রুত সেটআপের জন্য আদর্শ।

Custom Endpoint Mapping

বড় এবং জটিল অ্যাপ্লিকেশনে SOAP বার্তা হ্যান্ডলিংয়ের জন্য Custom Endpoint Mapping ব্যবহার করা হয়। এটি বিশেষত তখন ব্যবহার করা হয় যখন বার্তা প্রসেসিংয়ের জন্য Payload Root QName যথেষ্ট নয়।

কাস্টম ম্যাপিংয়ের জন্য ক্লাসগুলো

স্প্রিং-WS কাস্টম ম্যাপিংয়ের জন্য কয়েকটি প্রিফিনড ক্লাস সরবরাহ করে:

  • SoapActionEndpointMapping: SOAP অ্যাকশনের ভিত্তিতে এন্ডপয়েন্ট নির্বাচন করে।
  • SimpleUrlEndpointMapping: URL এর ভিত্তিতে এন্ডপয়েন্ট ম্যাপ করে।
  • XPathPayloadEndpointMapping: XPath এক্সপ্রেশন ব্যবহার করে এন্ডপয়েন্ট নির্ধারণ করে।

SoapActionEndpointMapping ব্যবহার

SOAP বার্তার SOAP Action এর ভিত্তিতে এন্ডপয়েন্ট নির্বাচন করতে SoapActionEndpointMapping ব্যবহার করা হয়।

  1. SOAP Action সেটআপ
    WSDL ফাইলে SOAP Action নির্ধারণ করতে হবে।

    উদাহরণ:

    <soap:operation soapAction="http://example.com/webservice/GetEmployee"/>
    
  2. SOAP Action Mapping কনফিগার
    কনফিগারেশনে SoapActionEndpointMapping যোগ করতে হবে।

    উদাহরণ:

    @Bean
    public SoapActionEndpointMapping soapActionEndpointMapping() {
        SoapActionEndpointMapping mapping = new SoapActionEndpointMapping();
        mapping.setMappings(Collections.singletonMap(
            "http://example.com/webservice/GetEmployee", 
            "employeeEndpoint"
        ));
        return mapping;
    }
    

SimpleUrlEndpointMapping ব্যবহার

URL ভিত্তিক এন্ডপয়েন্ট নির্বাচন করতে SimpleUrlEndpointMapping ব্যবহার করা হয়।

  1. Mapping Configuration
    নির্দিষ্ট URL এবং এন্ডপয়েন্টের মধ্যে ম্যাপিং সেট করুন।

    উদাহরণ:

    @Bean
    public SimpleUrlEndpointMapping simpleUrlEndpointMapping() {
        SimpleUrlEndpointMapping mapping = new SimpleUrlEndpointMapping();
        mapping.setMappings(Collections.singletonMap(
            "/employeeService", 
            "employeeEndpoint"
        ));
        return mapping;
    }
    

XPathPayloadEndpointMapping ব্যবহার

XML পেলোডের নির্দিষ্ট অংশের উপর ভিত্তি করে এন্ডপয়েন্ট নির্বাচন করতে XPathPayloadEndpointMapping ব্যবহার করা হয়।

  1. XPath এক্সপ্রেশন নির্ধারণ
    পেলোড থেকে XPath ব্যবহার করে বার্তা প্রক্রিয়াকরণের জন্য গুরুত্বপূর্ণ তথ্য নির্ধারণ করুন।

    উদাহরণ:

    @Bean
    public XPathPayloadEndpointMapping xpathEndpointMapping() {
        XPathPayloadEndpointMapping mapping = new XPathPayloadEndpointMapping();
        mapping.setExpressions(Collections.singletonMap(
            "//GetEmployeeRequest", 
            "employeeEndpoint"
        ));
        return mapping;
    }
    

Default এবং Custom Endpoint Mapping এর তুলনা

বৈশিষ্ট্যDefault MappingCustom Mapping
ব্যবহারযোগ্যতাসাধারণ এবং দ্রুত সেটআপবড় এবং জটিল প্রকল্পে কার্যকর
কনফিগারেশন জটিলতাসহজঅপেক্ষাকৃত জটিল
আবশ্যকতাPayloadRootQName যথেষ্টSOAP Action, URL বা XPath প্রয়োজন

Endpoint Mapping কেন গুরুত্বপূর্ণ?

  • SOAP বার্তা প্রক্রিয়াকরণ সহজ করে।
  • প্রজেক্টের স্কেল অনুযায়ী কাস্টমাইজ করার সুযোগ দেয়।
  • ক্লিন এবং ওয়েল-ডিফাইন্ড আর্কিটেকচার নিশ্চিত করে।

ডিফল্ট ম্যাপিং ছোট প্রকল্পে উপযোগী হলেও, কাস্টম ম্যাপিং বড় স্কেল এন্টারপ্রাইজ অ্যাপ্লিকেশনের জন্য অত্যন্ত কার্যকর।

Content added By
Promotion

Are you sure to start over?

Loading...