掲示板

JSON-Web-Service

7年前 に Heiner Kücker によって更新されました。

JSON-Web-Service

New Member 投稿: 10 参加年月日: 16/09/05 最新の投稿
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
7年前 に Heiner Kücker によって更新されました。

ADD: JSON-Web-Service

New Member 投稿: 10 参加年月日: 16/09/05 最新の投稿
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