OcSeriesApi -> getAll: [ /api/series] => Server Error

25 views
Skip to first unread message

Werner Karl

unread,
Nov 17, 2024, 10:24:44 AM11/17/24
to LMS-Opencast
Hallo,

wir betreiben an der Hochschule Geisenhei einen Opencast 15.7 Server, installiert über die debian-Pakete opencast-15-allinone und opencast-15-common.
Unser ILIAS ist auf Version 7.28, das Opencast-Plugin auf 7.0.7 und die OpencastPageComponent auf V7.0.1.

Wenn ich versuche, in einem ILIAS-Kurs ein neues Opencast-Objekt anzulegen, erhalte ich in ILIAS eine Exception "An error occurred while communicating with the OpenCast-Server: OcSeriesApi -> getAll: [ (GET) /api/series] => Server Error". Bei Bedarf kann ich die kompletten Errormeldung senden, aber es scheint ja wohl so, dass der Aufruf von /api/series diesen Fehler auslöst. Und tatsächlich, wenn ich mich als User mit Adminrechten, als api_user oder sogar als Admin anmelde, erhalte ich eine leere Seite als Antwort - nicht etwa ein leeres Array [] oder gar die Liste aller Serien wie in der api-doku beschrieben. Im Opencast Log erscheint bei diesem Aufruf eine Exception:

2024-11-17T14:47:16,391 | WARN  | (WebApplicationExceptionMapper:73) - javax.ws.rs.WebApplicationException: HTTP 500 Internal Server Error
        at org.opencastproject.external.endpoint.SeriesEndpoint.getSeriesList(SeriesEndpoint.java:343)

In der /etc/opencast/security/mh_default_org.xml sind die Rechte korrekt eingestellt, /api/series benötigt die ROLE_API_SERIES_VIEW , die alle relevanten User auch haben.

Es gab am 27.06.2024 eine ähnliche Fehlerbeschreibung "ILIAS Opencast PageComponent" https://groups.google.com/a/opencast.org/g/lms/c/Nqa6XI0B-ts , die aber nicht zu einer Lösung führte.

Kann mir jemand einen Tipp geben, woran das liegen könnte bzw. wo ich suchen soll?

Grüße aus dem Rheingau

Dietmar Zenker

unread,
Nov 18, 2024, 3:29:55 AM11/18/24
to LMS-Opencast, wka...@googlemail.com
Hallo,

ist der Series REST Endpoint beim Startup von Opencast überhaupt aktiviert worden? D.h. Du müsstest in den Logs  nach folgendem Eintrag suchen:
2023-08-22T08:27:59,471 | INFO  | (RestPublisher:331) - Registered REST endpoint at /api/series

Falls der nicht aktiviert wurde, muss es irgendein anderes Problem geben. Hilfreich wäre ein komplettes Log vom Startup-Prozess.

Viele Grüße,
Dietmar


Dietmar Zenker

unread,
Nov 18, 2024, 3:37:02 AM11/18/24
to LMS-Opencast, wka...@googlemail.com
BTW: welches opencast-15-common Paket ist hier gemeint?

Im Regelfall sollte die Installation des opencast-15-allinone alles nötige mitinstallieren und damit ausreichend sein.

Werner Karl

unread,
Nov 19, 2024, 5:30:36 AM11/19/24
to LMS-Opencast, dzenk...@online.de, Werner Karl
Vielen Dank für die schnelle Antwort. Ich arbeite nur Teilzeit, deshalb meine späte Antwort.

Der REST-Endpoint wird ganz normal gestartet:

2024-11-17T14:11:54,838 | INFO  | (SeriesEndpoint:195) - Activating External API - Series Endpoint
2024-11-17T14:11:54,860 | INFO  | (RestPublisher:331) - Registered REST endpoint at /api/series

Der Aufruf von /api/series über die Adressleiste löst zwei Exception in Folge aus (nur jeweils der Anfang):

1. Could not perform search query:

2024-11-19T11:08:50,645 | WARN  | (SeriesEndpoint:342) - Could not perform search query
java.lang.IllegalArgumentException: Value of field 'title' must not be null
        at com.entwinemedia.fn.data.json.Field.<init>(Field.java:31) ~[?:?]
        at com.entwinemedia.fn.data.json.Jsons.f(Jsons.java:89) ~[?:?]
        at org.opencastproject.external.endpoint.SeriesEndpoint$1.apply(SeriesEndpoint.java:374) ~[?:?]
        at org.opencastproject.external.endpoint.SeriesEndpoint$1.apply(SeriesEndpoint.java:348) ~[?:?]
        at com.entwinemedia.fn.StreamOp$5$1.apply(StreamOp.java:93) ~[?:?]
        at com.entwinemedia.fn.StreamOp$Iterate.hasNext(StreamOp.java:668) ~[?:?]

2. HTTP 500 Internal Server Error:

2024-11-19T11:08:50,655 | WARN  | (WebApplicationExceptionMapper:73) - javax.ws.rs.WebApplicationException: HTTP 500 Internal Server Error
        at org.opencastproject.external.endpoint.SeriesEndpoint.getSeriesList(SeriesEndpoint.java:343)
        at jdk.internal.reflect.GeneratedMethodAccessor68.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)


Bei der ersten Exception wundert mich das "Value of field 'title' must not be null". Laut api-Doku sollte dieser Aufruf eine Liste aller Serien zurückliefern. Der Aufruf für die Suche nach einem Titel sieht ja anders aus.
Ich hatte noch nicht erwähnt, dass z.B. die Suche nach Events über /api/events völlig problemlos funktioniert und alle Events zurückliefert.


Zum debian-paket opencast-15-allinone : In den dependencies des Pakets steht opencast-15-common, deshalb wird das mitinstalliert. Es entält allerdings für diesen Fehler relevante Dateien.
Auszug aus dpkg -L opencast-15-common :

/usr/share/opencast/system/org/opencastproject/opencast-series-service-api
/usr/share/opencast/system/org/opencastproject/opencast-series-service-api/15.7
/usr/share/opencast/system/org/opencastproject/opencast-series-service-api/15.7/opencast-series-service-api-15.7.jar
/usr/share/opencast/system/org/opencastproject/opencast-series-service-impl
/usr/share/opencast/system/org/opencastproject/opencast-series-service-impl/15.7
/usr/share/opencast/system/org/opencastproject/opencast-series-service-impl/15.7/opencast-series-service-impl-15.7.jar
/usr/share/opencast/system/org/opencastproject/opencast-series-service-remote
/usr/share/opencast/system/org/opencastproject/opencast-series-service-remote/15.7
/usr/share/opencast/system/org/opencastproject/opencast-series-service-remote/15.7/opencast-series-service-remote-15.7.jar


Wo kann ich weiter suchen? Danke für deine/eure Mühe.

Grüße

Dietmar Zenker

unread,
Nov 19, 2024, 5:53:32 AM11/19/24
to LMS-Opencast, wka...@googlemail.com, Dietmar Zenker
Da kommen wir der Ursache evtl. schon um einiges näher. Möglicherweise schlägt der API-Call deshalb fehl, weil der Titel irgendeiner Serie leer ist, was aber eigentlich nicht sein kann/darf, da es sich hierbei um ein Pflichtfeld handelt (zumindest ist es in org.opencastproject.ui.metadata.CatalogUIAdapterFactory-series-common.cfg standardmäßig so konfiguriert).

Was passiert eigentlich, wenn Du im Admin UI in den Serien-Bereich gehst, wird da eine Liste der existierenden Serien ausgegeben oder ist die auch leer? Falls da was angezeigt wird, gibt es da eine Serie ohne Titel? Wenn ja, könnte ein Löschen dieser Serie helfen.

Viele Grüße,
Dietmar



Werner Karl

unread,
Nov 19, 2024, 6:54:20 AM11/19/24
to Dietmar Zenker, LMS-Opencast
Hurra! Es geht wieder. Das war's. Da war tatsächlich eine Serie mit lauter leeren Einträgen. Ich habe sie gelöscht und es geht wieder.

Vielen Dank!

--
Sie erhalten diese Nachricht, weil Sie in Google Groups E-Mails von der Gruppe "LMS-Opencast" abonniert haben.
Wenn Sie sich von dieser Gruppe abmelden und keine E-Mails mehr von dieser Gruppe erhalten möchten, senden Sie eine E-Mail an lms+uns...@opencast.org.
Diese Diskussion finden Sie unter https://groups.google.com/a/opencast.org/d/msgid/lms/55e524fd-e30d-4f53-99eb-ef952ff28bden%40opencast.org.


--
--
Werner Karl
via googlemail
Reply all
Reply to author
Forward
0 new messages