Marshalling এবং Unmarshalling এর ধারণা

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

320

Marshalling এবং Unmarshalling কি?

Marshalling এবং Unmarshalling হল XML এবং জাভা অবজেক্টের মধ্যে ডেটা রূপান্তরের দুটি প্রক্রিয়া। স্প্রিং ওয়েব সার্ভিসে এগুলো XML বার্তা প্রক্রিয়াকরণের গুরুত্বপূর্ণ অংশ।

  • Marshalling: একটি জাভা অবজেক্টকে XML ফরম্যাটে রূপান্তর করার প্রক্রিয়া। এটি ওয়েব সার্ভিসে ডেটা পাঠানোর জন্য ব্যবহৃত হয়।
  • Unmarshalling: XML ডেটাকে একটি জাভা অবজেক্টে রূপান্তর করার প্রক্রিয়া। এটি ওয়েব সার্ভিস থেকে ডেটা গ্রহণ করার সময় ব্যবহৃত হয়।

Marshalling এবং Unmarshalling এর ভূমিকা

ওয়েব সার্ভিসে XML ফরম্যাট সবচেয়ে বেশি ব্যবহৃত হয় কারণ এটি স্ট্রাকচার্ড এবং বিভিন্ন প্ল্যাটফর্মে সমর্থনযোগ্য। স্প্রিং ওয়েব সার্ভিসে Marshalling এবং Unmarshalling নিম্নলিখিত ক্ষেত্রে ব্যবহৃত হয়:

  • SOAP বার্তা প্রক্রিয়াকরণ: সার্ভিসের ইনপুট বা আউটপুট ডেটাকে জাভা অবজেক্ট থেকে XML-এ এবং XML থেকে জাভা অবজেক্টে রূপান্তর।
  • ডেটা ভ্যালিডেশন: XML স্কিমা (XSD) ব্যবহার করে ইনপুট বা আউটপুট ডেটা যাচাই করা।
  • পোর্টেবল ডেটা ফরম্যাট: জাভা অবজেক্টকে XML-এ রূপান্তর করে এটি সহজেই অন্যান্য সিস্টেম বা অ্যাপ্লিকেশনের সঙ্গে শেয়ার করা যায়।

স্প্রিং-এ Marshalling এবং Unmarshalling এর প্রক্রিয়া

স্প্রিং ওয়েব সার্ভিসে Marshalling এবং Unmarshalling করার জন্য বিভিন্ন ফ্রেমওয়ার্ক এবং টুল ব্যবহার করা যায়, যেমন:

  • JAXB (Java Architecture for XML Binding)
  • Castor
  • XStream
  • XMLBeans

JAXB উদাহরণ:

১. JAXB অ্যাটোটেশন সহ মডেল ক্লাস তৈরি করা:

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "Employee")
public class Employee {

    private int id;
    private String name;

    @XmlElement
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @XmlElement
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

২. Marshalling (Java Object to XML):

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

public class MarshallingExample {
    public static void main(String[] args) throws JAXBException {
        Employee employee = new Employee();
        employee.setId(101);
        employee.setName("John Doe");

        JAXBContext context = JAXBContext.newInstance(Employee.class);
        Marshaller marshaller = context.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

        marshaller.marshal(employee, System.out);
    }
}

আউটপুট:

<Employee>
    <id>101</id>
    <name>John Doe</name>
</Employee>

৩. Unmarshalling (XML to Java Object):

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.StringReader;

public class UnmarshallingExample {
    public static void main(String[] args) throws JAXBException {
        String xml = "<Employee><id>101</id><name>John Doe</name></Employee>";

        JAXBContext context = JAXBContext.newInstance(Employee.class);
        Unmarshaller unmarshaller = context.createUnmarshaller();

        Employee employee = (Employee) unmarshaller.unmarshal(new StringReader(xml));
        System.out.println("Employee ID: " + employee.getId());
        System.out.println("Employee Name: " + employee.getName());
    }
}

স্প্রিং ওয়েব সার্ভিসে Marshalling এবং Unmarshalling এর ইমপ্লিমেন্টেশন

স্প্রিং ওয়েব সার্ভিসে Marshalling এবং Unmarshalling করার জন্য Marshaller এবং Unmarshaller ইন্টারফেস ব্যবহার করা হয়।

উদাহরণ:

কনফিগারেশন:

@Configuration
public class WebServiceConfig extends WsConfigurerAdapter {

    @Bean
    public Jaxb2Marshaller marshaller() {
        Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
        marshaller.setPackagesToScan("com.example.model");
        return marshaller;
    }
}

SOAP এন্ডপয়েন্টে ব্যবহার:

@Endpoint
public class EmployeeEndpoint {

    @PayloadRoot(namespace = "http://example.com/namespace", localPart = "EmployeeRequest")
    public EmployeeResponse handleEmployeeRequest(EmployeeRequest request) {
        EmployeeResponse response = new EmployeeResponse();
        response.setId(request.getId());
        response.setName("Processed: " + request.getName());
        return response;
    }
}

সুবিধা

  • সহজ রূপান্তর: জাভা অবজেক্ট এবং XML ফরম্যাটের মধ্যে রূপান্তর সহজতর হয়।
  • কোড রিডেবিলিটি: JAXB অ্যাটোটেশন ব্যবহার করলে কোড পড়া ও বুঝা সহজ হয়।
  • স্কিমা সমর্থন: XML স্কিমা (XSD) ফাইল ব্যবহার করে ডেটা যাচাই করা যায়।

সারাংশ:
Marshalling এবং Unmarshalling হল স্প্রিং ওয়েব সার্ভিসে XML এবং জাভা অবজেক্টের মধ্যে রূপান্তরের দুটি গুরুত্বপূর্ণ প্রক্রিয়া। JAXB, Spring Bean কনফিগারেশন এবং SOAP এন্ডপয়েন্টের মাধ্যমে এগুলো কার্যকরভাবে বাস্তবায়ন করা যায়। এটি ওয়েব সার্ভিসের ডেটা প্রক্রিয়াকরণকে সহজ এবং সঠিক করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...