Apache CXF with JAX-RS Example
https://www.theitroad.com
here's an example of how to use Apache CXF to create a RESTful web service using JAX-RS.
- First, we need to add the CXF dependencies to our project. We can do this by adding the following dependencies to our Maven pom.xml file:
<dependencies> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxrs</artifactId> <version>3.4.5</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http</artifactId> <version>3.4.5</version> </dependency> </dependencies>
- Next, we can create a resource class that will define our RESTful web service. Let's create a class called "HelloResource" that will have a single method called "sayHello" that takes a String parameter and returns a String:
package com.example; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; @Path("/hello") public class HelloResource { @GET @Path("/{name}") @Produces("text/plain") public String sayHello(@PathParam("name") String name) { return "Hello " + name; } }
In this class, we're using JAX-RS annotations to specify that the "sayHello" method should be called when a GET request is made to the "/hello/{name}" URL.
- Finally, we need to create a main method that will start up our web service. Here's what the main method should look like:
import org.apache.cxf.jaxrs.JAXRSServerFactoryBean; public class HelloServicePublisher { public static void main(String[] args) { // Create the JAX-RS server JAXRSServerFactoryBean factory = new JAXRSServerFactoryBean(); factory.setAddress("http://localhost:8080/"); factory.setServiceBean(new HelloResource()); // Start the server factory.create(); // Wait for the user to terminate the program