Liferay 7.2 api json url 404 - PullRequest
       58

Liferay 7.2 api json url 404

1 голос
/ 26 мая 2020

У меня: Eclispse Версия: 2019-06 (4.12.0) Идентификатор сборки: 20190614-1200

Liferay 7.2.0 CE GA1. Я использую Gradle.

Я следовал этому руководству: https://www.liferaystack.com/2017/11/rest-extender-and-jax-rs-restful-web-service-in-liferay-7-dxp.html

Я создал модуль rest .

Я создал два файла конфигурации внутри папки «src / main / resources / configuration»:

com.liferay.portal.remote.cxf.common.configuration.CXFEndpointPublisherConfiguration-cxf.properties

Код:

contextPath=/my-rest-service
authVerifierProperties=auth.verifier.BasicAuthHeaderAuthVerifier.urls.includes=*

com.liferay.portal.remote.rest.extender.configuration.RestExtenderConfiguration-rest.properties

Код:

contextPaths=/my-rest-service

    jaxRsServiceFilterStrings=(component.name=com.liferaystack.application.MyRestServiceApplication)

Это приложение MyRestWebserviceApplication. java:

package com.liferaystack.application;

import java.util.Collections;
import java.util.Set;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Application;

import org.osgi.service.component.annotations.Component;
import org.osgi.service.jaxrs.whiteboard.JaxrsWhiteboardConstants;

/**
 * @author pinoteam
 */
@ApplicationPath("/my-rest-service")
@Component(immediate = true, service = Application.class)
public class MyRestWebserviceApplication extends Application {

    public Set<Object> getSingletons() {
        return Collections.<Object>singleton(this);
    }

    @GET
    @Produces("text/plain")
    public String working() {
        return "It works!";
    }

    @GET
    @Path("/morning")
    @Produces("text/plain")
    public String hello() {
        return "Good morning!";
    }

    @GET
    @Path("/mattina")
    @Produces("text/plain")
    public String helloGa() {
        return "Good morning!";
    }

    @GET
    @Path("/morning/{name}")
    @Produces("text/plain")
    public String morning(
        @PathParam("name") String name,
        @QueryParam("drink") String drink) {

        String greeting = "Good Morning " + name;

        if (drink != null) {
            greeting += ". Would you like some " + drink + "?";
        }

        return greeting;
    }

}

Я запускаю сборку и развертывание. Приложение активно, но ничего не работает.

В панели управления у меня нет конфигурации Rest Extender, и у меня нет API ни по одному URL-адресу.

что мне не хватает? есть идеи?

1 Ответ

0 голосов
/ 27 мая 2020

Учебник, на который вы ссылаетесь, предназначен для Liferay 7.0 - имена пакетов / путей файлов конфигурации могли измениться, и я видел, что в bnd.bnd объявляется контекстный путь, а не эти файлы свойств - все могло измениться с тех пор.

Альтернативной отправной точкой может быть образец лезвия , который написан для 7.2 и предоставляет свойства доски в классе Java:

@Component(
    property = {
        JaxrsWhiteboardConstants.JAX_RS_APPLICATION_BASE + "=/users",
        JaxrsWhiteboardConstants.JAX_RS_NAME + "=Users"
    },
    service = Application.class
)
public class UsersRestService extends Application {

    @GET
    @Path("/list")
    @Produces("text/plain")
    public String getUsers() {
        ...
    }
...

Файл конфигурации этого плагина довольно тривиален (на первый взгляд кажется необязательным, но не верьте мне на слово)

...