Liferay 7.2 api json url 404

Liferay 7.2 api json url 404,api,liferay,liferay-7,Api,Liferay,Liferay 7,我有: Eclispse 版本:2019-06(4.12.0) 构建id:20190614-1200 Liferay 7.2.0 CE GA1。 我用Gradle 我遵循了本教程: 我创建了一个rest模块 我在文件夹“src/main/resources/configuration”中创建了两个配置文件: com.liferay.portal.remote.cxf.common.configuration.cxfendpointpublisher配置cxf.properties 代码: co

我有: Eclispse 版本:2019-06(4.12.0) 构建id:20190614-1200

Liferay 7.2.0 CE GA1。 我用Gradle

我遵循了本教程:

我创建了一个rest模块

我在文件夹“src/main/resources/configuration”中创建了两个配置文件:

com.liferay.portal.remote.cxf.common.configuration.cxfendpointpublisher配置cxf.properties

代码:

com.liferay.portal.remote.rest.extender.configuration.restExtender配置rest.properties

代码:

这是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;
    }

}
package com.liferaystack.application;
导入java.util.Collections;
导入java.util.Set;
导入javax.ws.rs.ApplicationPath;
导入javax.ws.rs.GET;
导入javax.ws.rs.Path;
导入javax.ws.rs.PathParam;
导入javax.ws.rs.products;
导入javax.ws.rs.QueryParam;
导入javax.ws.rs.core.Application;
导入org.osgi.service.component.annotations.component;
导入org.osgi.service.jaxrs.whiteboard.jaxrswiteboardconstants;
/**
*@author-pinosteam
*/
@应用程序路径(“我的rest服务”)
@组件(immediate=true,service=Application.class)
公共类MyRestWebserviceApplication扩展了应用程序{
公共集getSingleton(){
返回集合。单例(此);
}
@得到
@生成(“文本/纯文本”)
公共字符串处理(){
返回“它工作!”;
}
@得到
@小径(“/上午”)
@生成(“文本/纯文本”)
公共字符串hello(){
回复“早上好!”;
}
@得到
@路径(“/mattina”)
@生成(“文本/纯文本”)
公共字符串helloGa(){
回复“早上好!”;
}
@得到
@路径(“/morning/{name}”)
@生成(“文本/纯文本”)
公共字符串上午(
@PathParam(“名称”)字符串名称,
@QueryParam(“饮料”)字符串(饮料){
字符串问候语=“早上好”+姓名;
if(饮料!=null){
问候语+=”。你想要一些“+饮料+”?”;
}
回敬问候;
}
}
我运行构建和部署。 应用程序处于活动状态,但无法正常工作

在控制面板中,我并没有任何RESTExtender配置,也并没有任何url上的api


我错过了什么?有什么想法吗?

您链接的教程是针对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() {
        ...
    }
...

该插件的配置文件非常简单(乍一看是可选的,但请不要相信我的话)

您链接的教程是针对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() {
        ...
    }
...

该插件的配置文件相当简单(乍一看是可选的,但不要相信我的话)

请编辑您的问题,以包含您以,不要只链接到所有想要帮助你的人都必须通过的完整外部教程。我更新了问题。请编辑你的问题,以包含你以a的形式采取的步骤,不要只链接到所有想要帮助你的人都必须通过的完整外部教程。我更新了问题。它有效!非常感谢。现在我有了答案。我还有一个问题。我更新了getUsers,但我的更改没有效果。我清空了Liferay的缓存,但我看到了与第一次部署相同的响应。这将是一个新问题。但请注意,仅仅更改从数据库返回的数据并不会更改它们的持久版本—您需要显式存储这些数据。我创建了另一个问题,因为我认为问题是另一个:它可以工作!非常感谢。现在我有了答案。我还有一个问题。我更新了getUsers,但我的更改没有效果。我清空了Liferay的缓存,但我看到了与第一次部署相同的响应。这将是一个新问题。但请注意,仅更改从数据库返回的数据并不会更改其持久版本-您需要显式存储该数据。我创建了另一个问题,因为我认为问题是另一个:
@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() {
        ...
    }
...