Apache CXF ওয়েব সার্ভিস ডেভেলপ করার জন্য একটি শক্তিশালী ফ্রেমওয়ার্ক, যা SOAP এবং RESTful ওয়েব সার্ভিস সমর্থন করে। Apache CXF সার্ভিস ডিপ্লয়মেন্টের জন্য সাধারণত দুটি জনপ্রিয় অ্যাপ্লিকেশন সার্ভার, Apache Tomcat এবং JBoss (এখন Red Hat Application Server হিসেবে পরিচিত), ব্যবহৃত হয়। এখানে দুইটি সার্ভারে CXF ওয়েব সার্ভিস ডিপ্লয়মেন্ট করার বিস্তারিত প্রক্রিয়া ব্যাখ্যা করা হবে।
Tomcat হচ্ছে একটি হালকা ওয়েব সার্ভার যা Java Servlets এবং JSP (Java Server Pages) এর জন্য ব্যবহৃত হয়। CXF সার্ভিস ডিপ্লয়মেন্টের জন্য Tomcat কে সার্ভার হিসেবে ব্যবহার করা হয়। Tomcat এর মধ্যে JAX-RS এবং JAX-WS সমর্থিত হতে হলে সঠিক লাইব্রেরি এবং কনফিগারেশন ফাইল প্রয়োজন।
lib
ডিরেক্টরিতে CXF লাইব্রেরিগুলি কপি করতে হবে। আপনি Maven এর মাধ্যমে ডিপেনডেন্সি যোগ করতে পারেন, অথবা CXF এর ওয়ার (WAR) ফাইল ডাউনলোড করে সেটি হাতে কপি করে Tomcat এর lib
ডিরেক্টরিতে রাখতে পারেন।Maven ডিপেনডেন্সি ব্যবহার: আপনার Maven প্রজেক্টের pom.xml
ফাইলে নিম্নলিখিত ডিপেনডেন্সি যোগ করুন:
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.5.0</version>
</dependency>
</dependencies>
web.xml
কনফিগারেশন: Apache CXF ওয়েব সার্ভিস চালানোর জন্য আপনার ওয়েব অ্যাপ্লিকেশনটির web.xml
ফাইলে কিছু কনফিগারেশন করতে হবে। নিচে একটি উদাহরণ দেওয়া হল:
<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">
<display-name>CXF Web Service</display-name>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
mvn clean package
কমান্ড ব্যবহার করুন।webapps
ডিরেক্টরিতে কপি করুন। Tomcat স্বয়ংক্রিয়ভাবে WAR ফাইলটি এক্সট্র্যাক্ট করে এবং সার্ভিসটি চালু করবে।ওয়েব সার্ভিস টেস্ট: আপনার ওয়েব সার্ভিসটি চালু হলে, আপনি এটি টেস্ট করতে পারবেন Tomcat সার্ভারের URL অনুসরণ করে, যেমন:
http://localhost:8080/your-webapp/services/yourService
JBoss বা WildFly একটি পূর্ণাঙ্গ অ্যাপ্লিকেশন সার্ভার, যা Java EE স্পেসিফিকেশন অনুসরণ করে। JBoss এর মধ্যে অনেকগুলি Java EE স্পেসিফিকেশন (EJB, JPA, JAX-RS, JAX-WS ইত্যাদি) বিল্ট-ইন থাকে, তবে আপনি Apache CXF ব্যবহারের জন্য কিছু কনফিগারেশন করতে হবে।
Maven ডিপেনডেন্সি ব্যবহার: আপনার Maven প্রজেক্টের pom.xml
ফাইলে নিম্নলিখিত ডিপেনডেন্সি যোগ করুন:
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.5.0</version>
</dependency>
</dependencies>
jboss-web.xml
কনফিগারেশন: আপনার ওয়েব সার্ভিসের জন্য jboss-web.xml
ফাইলে CXF সের্ভলেট কনফিগার করতে হবে। এখানে একটি উদাহরণ দেখানো হলো:
<jboss-web>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</jboss-web>
deployments
ডিরেক্টরিতে কপি করুন। সার্ভারটি ওয়েব সার্ভিসটি চালু করবে।ওয়েব সার্ভিস টেস্ট: সার্ভিসটি চলমান হলে, আপনি এটি টেস্ট করতে পারবেন JBoss এর URL অনুসরণ করে, যেমন:
http://localhost:8080/your-webapp/services/yourService
Apache CXF ওয়েব সার্ভিস ডিপ্লয়মেন্টের জন্য Apache Tomcat এবং JBoss/WildFly উভয়ই জনপ্রিয় সার্ভার। Tomcat এ ডিপ্লয়মেন্টের জন্য কিছু কনফিগারেশন ফাইল এবং লাইব্রেরি যোগ করতে হয়, তবে JBoss/WildFly এর মধ্যে কিছু বিল্ট-ইন জাভা EE সমর্থন রয়েছে যা ডিপ্লয়মেন্ট সহজ করে। উভয় সার্ভারে আপনার ওয়েব সার্ভিসগুলি কার্যকরভাবে রান করার জন্য কনফিগারেশন এবং সঠিক লাইব্রেরি সংযোজন অত্যন্ত গুরুত্বপূর্ণ।