Webservice function error

Webservice function error

di Lorenzo Greco -
Numero di risposte: 11

Buonasera, ho un problema che mi sta bloccando, non riesco a capire cosa lo genera  premetto moodle 3.7.4 e lo stesso problema lo avevo con moodle 3.7.3, PHP 7.3

se vado in Amministrazione del sito  Plugin  Web service   Gestione servizi   Funzioni  Aggiungi funzione 

e provo ad aggiungere una funzione ad un servizio ho un errore 

E' stato rilevato un errore di programmazione, deve essere sistemato da un programmatore: Cannot find file with external function implementation


Facendo il debug

Debug info:
Error code: codingerror
×Stack trace:
  • line 87 of /lib/externallib.php: coding_exception thrown
  • line 199 of /admin/webservice/forms.php: call to external_api::external_function_info()
  • line 206 of /lib/formslib.php: call to external_service_functions_form->definition()
  • line 60 of /admin/webservice/service_functions.php: call to moodleform->__construct()
×Output buffer: <div class="notifytiny debuggingmessage" data-rel="debugging">External function parameters: invalid OPTIONAL value specified.<ul style="text-align: left" data-rel="backtrace"><li>line 712 of /lib/externallib.php: call to debugging()</li><li>line 41 of /filter/oembed/classes/webservice/ws_providers.php: call to external_function_parameters->__construct()</li><li>line 118 of /lib/externallib.php: call to filter_oembed\webservice\ws_providers::service_parameters()</li><li>line 199 of /admin/webservice/forms.php: call to external_api::external_function_info()</li><li>line 206 of /lib/formslib.php: call to external_service_functions_form->definition()</li><li>line 60 of /admin/webservice/service_functions.php: call to moodleform->__construct()</li></ul></div>


Media dei voti:  -
In riposta a Lorenzo Greco

Ri: Webservice function error

di Lorenzo Greco -
aggiungo altro errore, non riesco a venire a capo,
Amministrazione del sito Plugin Web service Documentazione API
In modalità manutenzione
E' stato rilevato un errore di programmazione, deve essere sistemato da un programmatore: Cannot find file with external function implementation

Maggiori informazioni su questo errore

×Debug info:
Error code: codingerror
×Stack trace:
line 87 of /lib/externallib.php: coding_exception thrown
line 36 of /admin/webservice/documentation.php: call to external_api::external_function_info()
×Output buffer:
External function parameters: invalid OPTIONAL value specified.
  • line 712 of /lib/externallib.php: call to debugging()
  • line 41 of /filter/oembed/classes/webservice/ws_providers.php: call to external_function_parameters->__construct()
  • line 118 of /lib/externallib.php: call to filter_oembed\webservice\ws_providers::service_parameters()
  • line 36 of /admin/webservice/documentation.php: call to external_api::external_function_info()
In riposta a Lorenzo Greco

Ri: Webservice function error

di Lorenzo Greco -
Risolto, se può servire ad altri
modificata la riga lib/externallib.php 87 riga
if (!file_exists($function->classpath)) {
throw new coding_exception('Cannot find file with external function implementation = '.$function->classpath);

il file in questione era un modello di corso TITLES che poi è relase candidate, installato e poi rimosso sembra aver risolto la situazione
buona giornata a tutti
Lorenzo
In riposta a Lorenzo Greco

Ri: Webservice function error

di Matteo Scaramuccia -

Ciao Lorenzo,
grazie per aver condiviso la tua soluzione Sì!

Io però avrei prima provato a rimuovere meglio aggiornare - quel problema mi sembra sistemato intorno al 1 giugno 2017 - https://moodle.org/plugins/filter_oembed che sembra poter essere l'origine dell'errore forse perché è un plug-in non compatibile con la tua versione di Moodle.

Trovo infatti "richioso" aver rimosso dal core di Moodle un elemento di segnalazione così importante nei confronti delle funzionalità di servizi remoti che posso essere "mal implementate" dai vari plug-in.

HTH,
Matteo

In riposta a Matteo Scaramuccia

Ri: Webservice function error

di Lorenzo Greco -
Ciao Matteo, non ho rimosso la riga
ma ho aggiunto = '.$function->classpath in modo che mi dicesse quale file non trovasse.
A quel punto ho concluso che il file mancate fosse il plugin course TITLE, che probabilmente ( non ricordo ) ho provato ad installare in passato, e la disinstallazione non sarà stata ottimale.
Quindi ho riscaricato il plugin TITLE, installato, ho visto che tutto funzionava e lo ho rimosso, dopo la rimozione è continuato a funzionare tutto.
La versione odierna del plugin TITLE è RC3 probabilmente la release precedente era mal sviluppata anche nella parte di disinstallazione.
al termine di tutta la procedura ho ripristinato la riga 87 del file lib/externallib.php in questo modo
if (!file_exists($function->classpath)) {
throw new coding_exception('Cannot find file with external function implementation ');

per quanto riguarda il plugin filter_oembed ho la versione 3.3.2 (Build - 2018120300) (2017051202) che è quella più recente per moodle 3.7
anche se effettivamente lo tengo disabilitato.

Spero che ora la mia soluzione sia di aiuto ad altri.
grazie
Lorenzo
In riposta a Lorenzo Greco

Ri: Webservice function error

di Matteo Scaramuccia -

Ciao Lorenzo,
mea culpa, non avevo capito nulla, perdonami ammiccante.

Mi ha tratto in inganno un errore, quello dell'OPTIONAL, e francamente non sapevo di un formato corso con quel nome.
Puoi condividere per completezza dove si scarica?

Grazie per la pazienza e la precisazione, sarà sicuramente uitle per qualcuno!

HTH,
Matteo

In riposta a Lorenzo Greco

Ri: Webservice function error

di Francesco Cortimiglia -

Caro Lorenzo, caro Matteo,

ho provato a seguire i vostri suggerimenti per risolvere un problema analogo. Sono su una installazione 3.8. Entrando in "Partecipanti" visualizzo il seguente messaggio

E' stato rilevato un parametro non valido


File: /lib/externallib.php

Linea: 332


Missing required key in single structure: year

Error code: invalidparameter

* line 332 of /lib/externallib.php: invalid_parameter_exception thrown

* line 223 of /lib/externallib.php: call to external_api::validate_parameters()

* line 79 of /lib/ajax/service.php: call to external_api::call_external_function()


Con l'aggiunta di  = '.$function->classpath non ottengo informazioni aggiuntive.

Suggerimenti? Grazie dell'attenzione

In riposta a Francesco Cortimiglia

Ri: Webservice function error

di Matteo Scaramuccia -

Ciao Francesco,
il tuo sembra un problema differente e molto simile a MDL-67140 però corretto sulla 3.8 e non credo stiamo parlando di MDL-63481 ammiccante.

Usi un tema grafico di terze parti? A seguito di quale azioni ti si manifesta il problema?

HTH,
Matteo

In riposta a Matteo Scaramuccia

Ri: invalidparameter

di Francesco Cortimiglia -

Buongiorno!

Sì, in effetti è un problema differente. Ha in comune il messaggio Invalidparameter e il riferimento al externallib.php

Il problema si evidenzaia quando entro in "Partecipanti"

uso il tema Enlightlite (rilasciato in effetti per 3.7, mentre ho installato 3.8)

Suggerimenti? grazie per l'attenzione


In riposta a Francesco Cortimiglia

Ri: invalidparameter

di Matteo Scaramuccia -

Ciao Francesco,
non uso quel tema quindi prima di provare, tempo permettendo, ad installarlo vorrei sapere qualcosa di più della tua installazione.

Oltre al tema grafico, quali altri plugin di terze parti hai installato?
In rete infatti si trovano problemi con (vecchie) versioni di https://moodle.org/plugins/block_culupcoming_events, in generale il problema potrebbe nascere da recenti cambiamenti fatti nella 3.8 per la gestione degli script JavaScript (MDL-62497 e https://docs.moodle.org/dev/Javascript_Modules#Inline_Javascript).

Quindi:

  1. se possibile, aggiorna alla ultima 3.8, 3.8.2, perché è stato introdotto un accorgimento per rendere l'inclusione dei javascript meno "pignola": MDL-67327 e MDL-67358, 3.8.1 e superiori
  2. elencaci tutti i plug-in terze parti che hai installati - anche quelli che non usi! - perché tra quelli che hanno bisogno di JavaScript si potrebbe celare il colpevole. ATTENZIONE: non basta disabilitare il colpevole, va proprio rimosso - in attesa, nel caso le/gli va anche riportato il problema, che venga risolto il  problema dal manutentore del plug-in

HTH,
Matteo

In riposta a Matteo Scaramuccia

Ri: invalidparameter

di Francesco Cortimiglia -
Grazie Matteo. proverò a passare all'ultima release. L'unico plugin nuovo è il plugin di zoom. In effetti c'è una coincidenza temporale. che ne dici può essere lui?. durante l'installazione mi venivano tuttavia segnalati una serie di vecchi plugin non più supportati che sarà il casso di rimuovere. Fatte queste operazioni, ti darò un cenn. Grazie