Liferay 7.2 api json url 404
Liferay 7.2 api json url 404
我有:
日蚀
版本: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.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。
我错过了什么?有什么想法吗?
您 link 的教程适用于 Liferay 7.0 - 配置文件的 package/path 名称可能已更改,我已经看到在 bnd.bnd 中声明了上下文路径,而不是那些 属性 文件 - 从那以后事情可能已经改变了。
另一个起点可能是 blade sample,它是为 7.2 编写的,并在 Java class:
中提供白板属性
@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() {
...
}
...
那个插件的配置文件相当简单(乍一看是可选的,但不要相信我的话)
我有: 日蚀 版本: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.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。
我错过了什么?有什么想法吗?
您 link 的教程适用于 Liferay 7.0 - 配置文件的 package/path 名称可能已更改,我已经看到在 bnd.bnd 中声明了上下文路径,而不是那些 属性 文件 - 从那以后事情可能已经改变了。
另一个起点可能是 blade sample,它是为 7.2 编写的,并在 Java class:
中提供白板属性@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() {
...
}
...
那个插件的配置文件相当简单(乍一看是可选的,但不要相信我的话)