Liferay использует реализацию JAX-RS Apache CXF.Как упомянуто в комментариях @dkb, вы должны предоставить аннотацию, которая есть у вас в примере кода.
Вам необходимо добавить зависимости.Посмотрите список ниже и обратите внимание, что некоторые из них предоставляются платформой, но некоторые должны быть включены в ваш jar-файл и не забывайте о транзитивных зависимостях.
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-core</artifactId>
<version>3.0.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>3.0.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-extension-providers</artifactId>
<version>3.0.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>2.7.9</version>
</dependency>
Последнее - это.Вам необходимо зарегистрировать своего провайдера Jackson в приложении JAX-RS.Это делается в классе приложений, например, вот так (есть и другие способы сделать это).
@Override
public Set<Object> getSingletons() {
Set<Object> singletons = new HashSet<>();
singletons.add(getJacksonProvider());
return Collections.unmodifiableSet(singletons);
}