ওয়েব সার্ভিস এন্ডপয়েন্ট (Endpoints) হলো সেই স্থান যেখানে সার্ভিসের অপারেশনগুলি ক্লায়েন্ট থেকে এক্সিকিউট করা যায়। Apache CXF ব্যবহার করে ওয়েব সার্ভিসে এন্ডপয়েন্ট তৈরি এবং ব্যবহার করা একটি সাধারণ প্রক্রিয়া যা SOAP বা RESTful সার্ভিসের মাধ্যমে কার্যকরী হয়। এখানে আমরা SOAP ওয়েব সার্ভিসের এন্ডপয়েন্ট তৈরি করার প্রক্রিয়া বিস্তারিতভাবে দেখব, যা একইভাবে RESTful ওয়েব সার্ভিসেও প্রয়োগ করা যেতে পারে।
Apache CXF এ SOAP ওয়েব সার্ভিসের জন্য এন্ডপয়েন্ট তৈরি করার জন্য মূলত তিনটি ধাপ অনুসরণ করা হয়:
প্রথমে আপনাকে একটি Java ইন্টারফেস তৈরি করতে হবে যা ওয়েব সার্ভিসের অপারেশনগুলো ডিফাইন করবে। ইন্টারফেসে @WebService
অ্যানোটেশন ব্যবহার করে ওয়েব সার্ভিসের মেথডগুলো ডিফাইন করা হয়।
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
@WebMethod
String sayHello(String name);
}
এরপর আপনাকে ওয়েব সার্ভিসের কার্যকরী বাস্তবায়ন তৈরি করতে হবে। এই ক্লাসটি ইন্টারফেসের মেথডগুলির বাস্তবায়ন করবে।
import javax.jws.WebService;
@WebService(endpointInterface = "com.example.HelloWorld")
public class HelloWorldImpl implements HelloWorld {
@Override
public String sayHello(String name) {
return "Hello, " + name;
}
}
এখন, Apache CXF এর মাধ্যমে এই সার্ভিসটি একটি URL-এ প্রকাশ করতে হবে, যাতে ক্লায়েন্ট এই সার্ভিসে অ্যাক্সেস করতে পারে।
import org.apache.cxf.jaxws.EndpointImpl;
public class Server {
public static void main(String[] args) {
// Create service implementation
HelloWorldImpl implementor = new HelloWorldImpl();
// Create endpoint and publish it
EndpointImpl endpoint = new EndpointImpl(implementor);
endpoint.publish("http://localhost:8080/helloWorld");
}
}
এখানে, http://localhost:8080/helloWorld
URL এ ওয়েব সার্ভিসটি প্রকাশিত হবে।
Apache CXF এ RESTful ওয়েব সার্ভিসের জন্য JAX-RS
API ব্যবহার করা হয়। নিম্নলিখিত ধাপগুলির মাধ্যমে RESTful সার্ভিসের এন্ডপয়েন্ট তৈরি করা হয়।
প্রথমে একটি ইন্টারফেস তৈরি করতে হবে যা REST API এর জন্য বিভিন্ন HTTP মেথড ডিফাইন করবে (যেমন GET
, POST
, PUT
, DELETE
)।
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
@Path("/hello")
public interface HelloWorldService {
@GET
String sayHello(@QueryParam("name") String name);
}
এবার ইন্টারফেসটি ইমপ্লিমেন্ট করে সার্ভিসের কার্যকরী বাস্তবায়ন তৈরি করতে হবে।
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
@Path("/hello")
public class HelloWorldServiceImpl implements HelloWorldService {
@Override
public String sayHello(String name) {
return "Hello, " + name;
}
}
এখন, Apache CXF এর মাধ্যমে RESTful সার্ভিসটি প্রকাশ করতে হবে।
import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
public class RestServer {
public static void main(String[] args) {
// Create service implementation
HelloWorldServiceImpl implementor = new HelloWorldServiceImpl();
// Create and configure the JAX-RS server
JAXRSServerFactoryBean factoryBean = new JAXRSServerFactoryBean();
factoryBean.setServiceBean(implementor);
factoryBean.setAddress("http://localhost:8080/helloWorld");
// Publish the REST endpoint
factoryBean.create();
}
}
এন্ডপয়েন্ট তৈরি হয়ে গেলে, এখন ক্লায়েন্ট অ্যাপ্লিকেশন থেকে সেই ওয়েব সার্ভিসে রিকোয়েস্ট পাঠানো যেতে পারে। SOAP এবং RESTful উভয় সার্ভিসের জন্য ক্লায়েন্ট তৈরি করা যেতে পারে।
import javax.xml.ws.Service;
import java.net.URL;
public class HelloWorldClient {
public static void main(String[] args) throws Exception {
URL url = new URL("http://localhost:8080/helloWorld?wsdl");
QName qname = new QName("http://example.com", "HelloWorldImplService");
Service service = Service.create(url, qname);
HelloWorld helloWorld = service.getPort(HelloWorld.class);
String response = helloWorld.sayHello("John");
System.out.println(response);
}
}
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.Response;
public class HelloWorldClient {
public static void main(String[] args) {
Client client = ClientBuilder.newClient();
Response response = client.target("http://localhost:8080/helloWorld/hello")
.queryParam("name", "John")
.request()
.get();
String output = response.readEntity(String.class);
System.out.println(output);
}
}
Apache CXF দিয়ে ওয়েব সার্ভিসের এন্ডপয়েন্ট তৈরি করা এবং তা ক্লায়েন্টের মাধ্যমে ব্যবহার করা একটি সহজ এবং কার্যকরী প্রক্রিয়া। SOAP এবং RESTful ওয়েব সার্ভিস উভয়ই Apache CXF দ্বারা সমর্থিত, এবং সার্ভিসের এন্ডপয়েন্টগুলি সহজেই তৈরি এবং কনফিগার করা যায়।
Read more