We used cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it. What For?

« Back to Blogs

JAX-WS in Liferay DXP/7

Liferay provides JAX web services implementation using Apache CXF. There are two types of web services Liferay supports. 1) JAX-WS 2) JAX-RS.

Here I am going to explain JAX-WS in Liferay 7/DXP.

There are basically two things you need to understand to create JAX web services in Liferay.

  1. CXF Endpoints

  • CXF Endpoints are context paths where JAX web services are deployed. E.g you can define CXF endpoints /soap and then you can create extender which deploy web services to this context path.
  1. Extenders

  • Extender is used to deploy web services to specified CXF endpoints. For example, If you define /soap endpoint while creating extender then all the web services registered with this extender will be available at /soap endpoint.

There are two types of extender : SOAP Extenders and REST Extenders. SOAP Extenders are used to publish JAX-WS web services and REST Extenders are used to publish JAX-RS web services.

You can define CXF endpoints and extenders from control panel or programmatically. Here I am going to show you programmatically.

First create module project of service type in your IDE.

Add Configuration Path :

Add following configuration attributes in bnd.bnd file.

configurationPath: /configuration
Include-Resource: configuration=src/main/resources/configuration


src/main/resources/configuration is path where you will define configuration for endpoints and extenders.


Configure CXF Endpoints :

Create a file com.liferay.portal.remote.cxf.common.configuration.CXFEndpointPublisherConfiguration-cxf in configuration folder.


Here I am going to define /soap context path as following.



AuthVerifier properties: Any properties defined here are passed as-is to the AuthVerifier filter. See the AuthVerifier documentation for more details.

Configure SOAP Extender :

Create a file com.liferay.portal.remote.soap.extender.configuration.SoapExtenderConfiguration-soap in configuration folder.

Define extender which will deploy web services to /soap context path.

jaxWsServiceFilterStrings=(component.name={{jax-ws service class}})


Create JAX-WS service class:


package com.st.liferay7.jaxws.calculatorservice;

import javax.jws.WebMethod;
import javax.jws.WebService;

import org.osgi.service.component.annotations.Component;

immediate = true,
property = "jaxws=true",
service = Calculator.class

public class Calculator {
   public int divide(int a, int b) {
       return a / b;

   public int multiply(int a, int b) {
       return a * b;

   public int subtract(int a, int b) {
       return a - b;

   public int sum(int a, int b) {
       return a + b;


To publish JAX-WS web services via SOAP in a Liferay Portal CE 7.0 module, annotate the class and its methods with standard JAX-WS annotations. For example, the above class uses the @WebService annotation for the class and @WebMethod annotations for its methods. You must also set the jaxws property to true in the OSGi @Component annotation.

Deploy module on your Liferay server. If module is configured and deployed properly you can see cxf endpoint and soap extender created from Control Panel > Configuration > System Settings.

You can see all the web services from /o/{{cxfendpoints}} path. Here try /o/soap, it will show list of web services registered for /soap context path.

That’s it.

Download :

soap calculator service(jar)

For more implementation details or support you may contact us at [email protected].

contact-us Request a callback WhatsApp