EJB এর মাধ্যমে Web Services তৈরি করা

EJB এবং Web Services Integration - ইজেবি (EJB) - Java Technologies

298

EJB (Enterprise JavaBeans) এবং Web Services একে অপরের সাথে কাজ করার জন্য খুবই উপকারী। EJB-এর মাধ্যমে আপনি ব্যবসায়িক লজিক তৈরি করতে পারেন এবং সেই লজিককে ওয়েব সার্ভিসের মাধ্যমে প্রকাশ করতে পারেন। EJB Web Services সাধারণত JAX-RS (Java API for RESTful Web Services) বা JAX-WS (Java API for XML Web Services) ব্যবহার করে তৈরি করা হয়।

এই গাইডে Eclipse IDE তে EJB এর মাধ্যমে Web Services তৈরি করার ধাপগুলো ব্যাখ্যা করা হয়েছে।


1. Eclipse IDE তে EJB Web Service তৈরি করার জন্য প্রয়োজনীয় প্রস্তুতি

প্রথমেই, Eclipse IDE তে EJB Web Services তৈরি করতে আপনাকে কিছু প্রস্তুতি নিতে হবে, যেমন:

  1. Java EE প্রজেক্ট তৈরি করা: Dynamic Web Project তৈরি করতে হবে যা EJB এবং Web Services কনফিগারেশনের জন্য প্রস্তুত হবে।
  2. EJB Container সেটআপ: EJB Beans এবং Web Services-এর জন্য একটি EJB Container (যেমন WildFly, GlassFish ইত্যাদি) প্রয়োজন।
  3. JAX-WS বা JAX-RS API ইনস্টল করা: Web Services তৈরির জন্য JAX-WS (SOAP) বা JAX-RS (RESTful) ইনস্টল এবং কনফিগার করতে হবে।

2. Eclipse IDE তে Dynamic Web Project তৈরি করা

  1. Eclipse IDE তে File > New > Dynamic Web Project নির্বাচন করুন।
  2. প্রকল্পের নাম দিন (যেমন EJBWebServiceExample) এবং Next চাপুন।
  3. Target Runtime নির্বাচন করুন (যেমন, GlassFish বা WildFly) এবং Finish চাপুন।

এখন আপনার একটি Dynamic Web Project তৈরি হবে যেখানে EJB এবং Web Services কনফিগার করা যাবে।


3. EJB Web Service তৈরি করা (JAX-WS SOAP Web Service)

JAX-WS (Java API for XML Web Services) SOAP ভিত্তিক ওয়েব সার্ভিস তৈরি করার জন্য ব্যবহৃত হয়। এখানে Stateless Session Bean ব্যবহার করে SOAP Web Service তৈরি করার উদাহরণ দেওয়া হলো।

EJB Web Service Bean তৈরি করা:

এখানে, একটি Stateless Session Bean তৈরি করা হবে যা JAX-WS ওয়েব সার্ভিস হিসেবে প্রকাশ করা হবে।

import javax.ejb.Stateless;
import javax.jws.WebService;

@Stateless
@WebService
public class CalculatorService {

    public int add(int a, int b) {
        return a + b;
    }

    public int subtract(int a, int b) {
        return a - b;
    }

    public int multiply(int a, int b) {
        return a * b;
    }

    public int divide(int a, int b) {
        if (b == 0) {
            throw new IllegalArgumentException("Cannot divide by zero");
        }
        return a / b;
    }
}

এখানে, CalculatorService একটি Stateless Session Bean, যা @WebService অ্যানোটেশন ব্যবহার করে JAX-WS SOAP Web Service হিসেবে প্রকাশ করা হয়েছে।

Web Service Endpoint প্রকাশ করা:

EJB কম্পোনেন্টের মাধ্যমে SOAP ওয়েব সার্ভিস প্রকাশ করার জন্য web.xml এবং ejb-jar.xml কনফিগারেশন ফাইলগুলোর মধ্যে কিছু সেটিংস যোগ করা হয়।

web.xml (Deployment Descriptor):

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                             http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">

    <servlet>
        <servlet-name>CalculatorService</servlet-name>
        <servlet-class>org.apache.catalina.servlets.InvokerServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>CalculatorService</servlet-name>
        <url-pattern>/CalculatorService</url-pattern>
    </servlet-mapping>

</web-app>

ejb-jar.xml (EJB Deployment Descriptor):

<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                             http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
         version="3.0">
    <enterprise-beans>
        <session>
            <ejb-name>CalculatorService</ejb-name>
            <ejb-class>com.example.CalculatorService</ejb-class>
            <session-type>Stateless</session-type>
            <home>com.example.CalculatorServiceHome</home>
            <remote>com.example.CalculatorServiceRemote</remote>
        </session>
    </enterprise-beans>
</ejb-jar>

4. Client-side Web Service Call

এখন, আপনি যেকোনো ক্লায়েন্ট (যেমন JAX-WS client) ব্যবহার করে ওয়েব সার্ভিস কল করতে পারবেন। JAX-WS ক্লায়েন্ট তৈরি করতে, আপনি নিম্নলিখিত কোড ব্যবহার করতে পারেন:

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

public class CalculatorClient {
    public static void main(String[] args) throws Exception {
        URL url = new URL("http://localhost:8080/EJBWebServiceExample/CalculatorService?wsdl");
        QName qname = new QName("http://example.com/", "CalculatorService");

        Service service = Service.create(url, qname);
        CalculatorService calculator = service.getPort(CalculatorService.class);

        System.out.println("Addition result: " + calculator.add(10, 20));
        System.out.println("Subtraction result: " + calculator.subtract(20, 10));
    }
}

এখানে, CalculatorClient হল একটি ক্লায়েন্ট অ্যাপ্লিকেশন যা ওয়েব সার্ভিসের WSDL URL দিয়ে SOAP সার্ভিসে কল করে।


5. JAX-RS (RESTful Web Service) Integration (Optional)

আপনি যদি RESTful Web Services তৈরি করতে চান, তাহলে JAX-RS ব্যবহার করতে পারেন। এটি JAX-WS এর তুলনায় সহজ এবং সহজেই JSON বা XML ডেটা ফর্ম্যাটে কাজ করতে সাহায্য করে।

RESTful EJB Service Example:

import javax.ejb.Stateless;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Stateless
@Path("/calculator")
public class CalculatorRestService {

    @GET
    @Path("/add")
    @Produces("application/json")
    public int add() {
        return 10 + 20;
    }
}

এখানে, CalculatorRestService একটি RESTful EJB সেবার উদাহরণ যা JAX-RS এর মাধ্যমে JSON ফরম্যাটে ফলাফল প্রদান করবে।


6. EJB Web Service-এর সুবিধা:

  • Transaction Management: EJB ওয়েব সার্ভিস ট্রানজেকশন ম্যানেজমেন্ট এবং সিকিউরিটি সমর্থন প্রদান করে।
  • Scalability: EJB অ্যাপ্লিকেশনগুলি সহজে স্কেল করা যায় এবং উচ্চ পারফরম্যান্স সরবরাহ করে।
  • Security: EJB কম্পোনেন্টের মধ্যে container-managed security ব্যবহৃত হয়, যা নিরাপদ ওয়েব সার্ভিস তৈরি করতে সাহায্য করে।
  • Ease of Integration: EJB এবং JAX-WS এর মাধ্যমে সহজে SOAP ও RESTful Web Services ইন্টিগ্রেট করা যায়।

সারাংশ:

Eclipse IDE তে EJB এবং Web Services (SOAP/JAX-WS অথবা RESTful/JAX-RS) এর ইন্টিগ্রেশন আপনাকে শক্তিশালী ডিস্ট্রিবিউটেড এবং নিরাপদ অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে। EJB এর মাধ্যমে ব্যবসায়িক লজিকের জন্য স্টেটলেস, স্টেটফুল, অথবা সিঙ্গেলটন সেশন বিইন তৈরি করা হয় এবং সেই লজিককে ওয়েব সার্ভিসে প্রকাশ করা হয়। JAX-WS এবং JAX-RS API ব্যবহার করে SOAP এবং RESTful ওয়েব সার্ভিস নির্মাণ করা সম্ভব, যা ডিস্ট্রিবিউটেড সিস্টেমে কম্পোনেন্টগুলির মধ্যে যোগাযোগের জন্য ব্যবহৃত হয়।

Content added By
Promotion

Are you sure to start over?

Loading...