Apache CXF with JAX-WS Example
thtps://www.theitroad.com
here's an example of how to use Apache CXF with JAX-WS to create a simple web service.
- First, we need to create a JAX-WS annotated class that will serve as our web service implementation. Let's create a class called "HelloServiceImpl" that will have a single method called "sayHello" that takes a String parameter and returns a String.
import javax.jws.WebService;
@WebService(endpointInterface = "com.example.HelloService")
public class HelloServiceImpl implements HelloService {
public String sayHello(String name) {
return "Hello " + name;
}
}
- Next, we need to create a CXF configuration file called "cxf.xml" that will define our web service. Here's what the file should look like:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:cxf="http://cxf.apache.org/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<jaxws:endpoint id="helloService"
implementor="com.example.HelloServiceImpl"
address="/hello">
</jaxws:endpoint>
</beans>
In this file, we're defining a JAX-WS endpoint with an ID of "helloService" that will use our "HelloServiceImpl" implementation and be accessible at the "/hello" 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:
public static void main(String[] args) {
// Create the Spring context
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:cxf.xml");
// Wait for the user to terminate the program
System.out.println("Press Enter to exit.");
System.in.read();
// Close the Spring context
context.close();
}
In this method, we're creating a Spring context from our "cxf.xml" file and waiting for the user to terminate the program.
That's it! With these three steps, we've created a simple web service using Apache CXF and JAX-WS. To test the service, you can open a web browser or a tool like SOAPUI and navigate to the URL "http://localhost:8080/hello?wsdl". You should see a WSDL document that describes the "sayHello" method of our "HelloServiceImpl" implementation.
