Apache CXF এর মাধ্যমে Client Proxy তৈরি করা হলো SOAP ওয়েব সার্ভিসে ক্লায়েন্টের পক্ষে সার্ভিস কল করার একটি পদ্ধতি। Client Proxy আপনাকে সার্ভিসের WSDL (Web Service Definition Language) ফাইলের উপর ভিত্তি করে একটি ক্লায়েন্ট অবজেক্ট তৈরি করতে দেয়, যা সার্ভিসের মেথডগুলোকে সহজে কল করতে সক্ষম হয়। Apache CXF ক্লায়েন্ট প্রক্সি তৈরি করার জন্য wsdl2java
টুল ব্যবহার করে WSDL ফাইল থেকে Java ক্লাস তৈরি করা হয়, এবং সেগুলোকে দিয়ে ওয়েব সার্ভিস কল করা হয়।
প্রথমে, আপনাকে ওয়েব সার্ভিসের WSDL ফাইলটি সংগ্রহ করতে হবে। উদাহরণস্বরূপ, যদি আপনার ওয়েব সার্ভিসের WSDL ফাইলটি http://localhost:8080/helloWorldService?wsdl
হয়, তাহলে আপনি এটি ব্যবহার করতে পারবেন।
wsdl2java
টুল ব্যবহার করে Java ক্লাস তৈরি করাApache CXF এর wsdl2java
টুলটি WSDL ফাইল থেকে Java ক্লাস জেনারেট করতে ব্যবহৃত হয়। আপনি এই টুলটি Maven বা কমান্ড লাইনের মাধ্যমে ব্যবহার করতে পারেন।
wsdl2java
টুল চালানোMaven প্রজেক্টে wsdl2java
টুল চালানোর জন্য প্রথমে pom.xml
ফাইলে Apache CXF এর প্লাগইন যোগ করুন:
<build>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<goals>
<goal>wsdl2java</goal>
</goals>
<configuration>
<wsdlUrls>
<wsdlUrl>http://localhost:8080/helloWorldService?wsdl</wsdlUrl>
</wsdlUrls>
<packageName>com.example.client</packageName> <!-- Java Package -->
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
এখানে:
এবার Maven কমান্ড চালান:
mvn clean generate-sources
এই কমান্ডটি WSDL থেকে Java ক্লাস জেনারেট করবে এবং আপনার প্রজেক্টে target/generated-sources
ডিরেক্টরিতে ক্লাসগুলো তৈরি হবে।
wsdl2java
টুল দ্বারা তৈরি Java ক্লাসগুলির মধ্যে ক্লায়েন্ট প্রক্সি অবজেক্ট থাকবে, যার মাধ্যমে আপনি ওয়েব সার্ভিসের মেথডগুলো কল করতে পারবেন।
এখন, আপনি একটি ক্লায়েন্ট ক্লাস তৈরি করতে পারেন, যা ওয়েব সার্ভিসে ক্লায়েন্ট প্রক্সি ব্যবহার করবে:
package com.example.client;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
public class HelloWorldClient {
public static void main(String[] args) {
// WSDL URL এবং সার্ভিস ক্লাস সেট করা
String serviceUrl = "http://localhost:8080/helloWorldService";
// JAX-WS Proxy ফ্যাক্টরি ব্যবহার করে ওয়েব সার্ভিসের ক্লায়েন্ট প্রক্সি তৈরি করা
JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
factoryBean.setServiceClass(HelloWorldService.class); // Service Interface
factoryBean.setAddress(serviceUrl); // Web Service URL
// Proxy অবজেক্ট তৈরি
HelloWorldService client = (HelloWorldService) factoryBean.create();
// ওয়েব সার্ভিসের মেথড কল করা
String response = client.sayHello("John");
System.out.println("Response from service: " + response);
}
}
এখানে:
wsdl2java
টুল দ্বারা তৈরি হয়।এটি একটি উদাহরণ HelloWorldService
ইন্টারফেস, যা wsdl2java
টুল দ্বারা জেনারেট করা হয়:
package com.example.client;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public interface HelloWorldService {
@WebMethod
String sayHello(String name);
}
এখন, আপনি ওয়েব সার্ভিস সার্ভার এবং ক্লায়েন্ট কোড রান করে দেখতে পারেন।
আপনার ক্লায়েন্ট প্রোগ্রামটি ওয়েব সার্ভিসের sayHello()
মেথড কল করবে এবং ওয়েব সার্ভিসের থেকে আউটপুট পাবে।
Apache CXF এর মাধ্যমে ক্লায়েন্ট প্রক্সি তৈরি করা ওয়েব সার্ভিসে ক্লায়েন্ট হিসেবে সহজে মেথড কল করার সুযোগ দেয়। wsdl2java
টুলটি WSDL ফাইল থেকে Java ক্লাস তৈরি করে এবং JaxWsProxyFactoryBean
এর মাধ্যমে ক্লায়েন্ট প্রক্সি তৈরি করা হয়। এতে করে SOAP ভিত্তিক ওয়েব সার্ভিসগুলোর সঙ্গে Java ক্লায়েন্ট ইন্টিগ্রেট করা সহজ হয়ে ওঠে।