留言板

JSON-Web-Service

Heiner Kücker,修改在7 年前。

JSON-Web-Service

New Member 帖子: 10 加入日期: 16-9-5 最近的帖子
Hallo Gemeinde,

ich habe in einem Liferay 7 Workspace Project in der Liferay IDE (Community Edition) ein Liferay Module Project mit Project Template servicebuilder angelegt.


Als Template gibt es dort eine Foo-Entität mit FooService*-Klassen.

In der FooServiceImpl-Klasse habe ich eine Service-Methode angelegt.

public java.lang.String getFoo();

Nach neuem Aufruf des service builder ist diese Methode auch im Interface drin (generiert).


Nach folgender Anleitung

https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/creating-remote-services

wollte ich aus der angelegten Service-Methode einen JSON-WebService machen.

In der service.xml ist das Atribut

remote-service="true"

drin.

Die @JSONWebService-Annotation ist im Foo-Interface gesetzt (generiert).


Das Modul ist mit

MyJsonWebService-api
MyJsonWebService-service

im Liferay-Tomcat deployt und wird im Start-Log als deployt angezeigt.

12:15:34,058 INFO [pool-8-thread-3][BundleStartStopLogger:35] STARTED myjsonwebservice-api_1.0.0 [490]
12:15:35,679 INFO [pool-8-thread-1][BundleStartStopLogger:35] STARTED myjsonwebservice-service_1.0.0 [491]


Laut

https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/registering-json-web-services

müsste der JSON-Web-Service

unter

http://localhost:8080/api/jsonws

angezeigt werden.

Da finde ich aber nichts mit foo.


Auch ein Aufruf

http://localhost:8080/api/jsonws/foo.Foo/get-foo

oder

http://localhost:8080/api/jsonws?contextName=foo&signature=%2Ffoo.foo%2Fget-foo

bringt kein Ergebnis.


Im Interface steht die Annotation

@AccessControlled
@JSONWebService
@OSGiBeanProperties(property = {
"json.web.service.context.name=foo", "json.web.service.context.path=Foo"}, service = FooService.class)
@ProviderType
@Transactional(isolation = Isolation.PORTAL, rollbackFor = {
PortalException.class, SystemException.class})
public interface FooService extends BaseService {


die laut

https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/registering-json-web-services

auch eine Rolle spielen soll.


Leider bekomme ich den JSON-Web-Service nicht mal probeweise zum Laufen und benötige dringend Hilfe.

Vielen Dank
Heiner Kücker,修改在7 年前。

ADD: JSON-Web-Service

New Member 帖子: 10 加入日期: 16-9-5 最近的帖子
Ein Kollege hat es probiert, scheinbar klappt es, wenn in der Datei

<modulname>-service/build.gradle

überall compileOnly durch compile ersetzt wird.

Ausserdem möglichst oft in der Liferay-Perspektive in der Eclipse-View Project Exlplorer auf dem service-Knoten des Moduls

rechte Maustaste -> Liferay -> Gradle -> build-service

klicken.

Ausserdem
Liferay-Perspektive -> Project Exlplorer -> Knoten -> rechte Maustaste -> Gradle -> Refresh Gradle Project

klicken.

Danke
Heiner