JAX-WS Service Development Options
JAX-WS Annotated Services from Java
The JAX-WS APIs include a set of annotations which allow you to build services using annotated classes. These services are based on a single class which contains a set of operations.
Here's a simple example:
@WebService
public class Hello {
public String sayHi(String name) {
return "Hello " + name;
}
}
JAX-WS includes many more annotations as well such as:
-
@WebMethod - allows you to customize the operation name, exclude the operation from inclusion in the service, etc
-
@WebParam - allows you to customize a parameter's name, namespace, direction (IN or OUT), etc
-
@WebResult - allows you to customize the return value of the web service call
Data is marshalled from XML to Java and vice versa via the JAXB data-binding.
Services are publish via one of two means:
-
The JAX-WS standard Endpoint APIs
-
CXF's XML configuration format - i.e. <jaxws:endpoint ... />
JAX-WS Annotated Services from WSDL
If you have existing WSDLs for your service or wish to write your WSDL first and then generate classes, CXF has many tools to help you do this.
The WSDL2Java tool will generate a JAX-WS annotated service and server stub from your WSDL. You can run it one of three ways:
-
The command line
-
The Maven plugin
-
With the WSDL2Java API
Note that CXF generally restricts WSDL support to WSI-BP, not the full WSDL 1.1 specification.