留言板
JSON-Web-Service
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
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
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
<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