Open ilgrosso opened 1 year ago
Sto iniziando a implementare il nuovo REST, non l'ho ancora fatto. Ho messo quello tuo come esempio sul mio progetto per vedere come funzionasse
Ho committato il nuovo endpoint per restituire la lista degli users, sulla base delle indicazioni che ho trovato sul tuo blog. Ho provato ad aprire swagger per testare l'endpoint, ma quando vado su : http://localhost:9080/syncope/swagger/ Mi esce la pagina del tomcat con 404 - Not Found.
Inoltre, quando provo ad autenticarmi nella pagina dell'Admin Console : http://localhost:9080/syncope-console/login?2
Inserendo le credenziali (corrette), il messaggio che mi esce sempre è : Session expired: please login again Cerco di capirne il motivo, nel frattempo riesci a verificare se l'endpoint che ho fatto è corretto? Grazie
Ho provato ad aprire swagger per testare l'endpoint, ma quando vado su :
Questo è perché in Syncope 2.1 Swagger UI è un'estensione, e quindi per averla devi includere il profilo all
sia durante la compilazione che l'avvio - vedi https://syncope.apache.org/docs/2.1/getting-started.html#embedded-mode
Inserendo le credenziali (corrette), il messaggio che mi esce sempre è : Session expired: please login again
devi guardare i log per capire cosa c'è che non va
nel frattempo riesci a verificare se l'endpoint che ho fatto è corretto?
non ho avuto ancora modo di far partire il progetto, ma guardando il codice più o meno ci siamo - directory target
ancora in giro a parte
l'esercizio richiedeva un "payload JSON costante" cioè qualcosa del tipo
{
"message": "whatever"
}
quello che hai fatto tu è prendere l'output di un DAO: se questo era lo scopo, ci sarebbero altre cosette da sistemare, ma per ora va bene comunque
Ti faccio sapere quando do un'occhiata più approfondita.
Non ero sicuro del "costante", ed ho preferito fare qualcosa di più "realistico". Stamattina sono un pò impegnato anche io, ti scrivo qui appena farò dei progressi, sulla base delle tue indicazioni.
Ho proceduto a fare quello che mi hai detto, secondo la guida, ovvero includere il profilo all facendo :
dalla main directory del progetto : mvn -P all clean install dalla cartella enduser : mvn -P embedded,all
Lo swagger ora carica l'head correttamente (vedo titolo e iconcina) ma la pagina la vedo completamente vuota.
Per quanto riguarda la login dentro la admin console, la console.log (del package "console") mi ha fornito questo errore :
12:52:03.510 ERROR org.apache.syncope.client.console.SyncopeConsoleRequestCycleListener - Exception found org.apache.wicket.core.request.mapper.StalePageException: A request to page '[Page class = org.apache.syncope.client.console.pages.Login, id = 3, render count = 4]' has been made with stale 'renderCount'. The page will be re-rendered.
Ho risolto i problemi Maven principali in fe2c754311c29102a18f11728d72de4d21122f70 e adesso riesco ad entrare nella Console come admin
.
Il nuovo endpoint non è visible in Swagger UI perché la relativa dipendenza non è stata aggiunta al modulo core
: come potrebbe sapere quindi che tale nuovo servizio esiste?
Aggiungendo le dipendenze dei (due) endpoint al core ottengo l'errore che riporto, quando apro la console. (non ho ancora pushato questa modifica, e sto ancora provando a risolverlo)
HTTP Status 500 – Internal Server Error Type Exception Report
Message Unable to instantiate web session class org.apache.syncope.client.console.SyncopeConsoleSession
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
org.apache.wicket.WicketRuntimeException: Unable to instantiate web session class org.apache.syncope.client.console.SyncopeConsoleSession org.apache.wicket.authroles.authentication.AuthenticatedWebApplication.newSession(AuthenticatedWebApplication.java:121) org.apache.wicket.Application.fetchCreateAndSetSession(Application.java:1557) org.apache.wicket.Session.get(Session.java:176) org.apache.syncope.client.console.SyncopeConsoleSession.get(SyncopeConsoleSession.java:125) org.apache.syncope.client.console.SyncopeConsoleRequestCycleListener.onException(SyncopeConsoleRequestCycleListener.java:73) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:126) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:122) org.apache.wicket.util.listener.ListenerCollection.notify(ListenerCollection.java:80) org.apache.wicket.request.cycle.RequestCycleListenerCollection.onException(RequestCycleListenerCollection.java:121) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:126) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:122) org.apache.wicket.util.listener.ListenerCollection.notify(ListenerCollection.java:80) org.apache.wicket.request.cycle.RequestCycleListenerCollection.onException(RequestCycleListenerCollection.java:121) org.apache.wicket.request.cycle.RequestCycle.handleException(RequestCycle.java:379) org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:325) org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:260) org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:276) org.apache.wicket.protocol.ws.AbstractUpgradeFilter.processRequestCycle(AbstractUpgradeFilter.java:66) org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:207) org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:306) Root Cause
java.lang.reflect.InvocationTargetException sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) java.lang.reflect.Constructor.newInstance(Constructor.java:423) org.apache.wicket.authroles.authentication.AuthenticatedWebApplication.newSession(AuthenticatedWebApplication.java:117) org.apache.wicket.Application.fetchCreateAndSetSession(Application.java:1557) org.apache.wicket.Session.get(Session.java:176) org.apache.syncope.client.console.SyncopeConsoleSession.get(SyncopeConsoleSession.java:125) org.apache.syncope.client.console.SyncopeConsoleRequestCycleListener.onException(SyncopeConsoleRequestCycleListener.java:73) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:126) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:122) org.apache.wicket.util.listener.ListenerCollection.notify(ListenerCollection.java:80) org.apache.wicket.request.cycle.RequestCycleListenerCollection.onException(RequestCycleListenerCollection.java:121) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:126) org.apache.wicket.request.cycle.RequestCycleListenerCollection$4.notify(RequestCycleListenerCollection.java:122) org.apache.wicket.util.listener.ListenerCollection.notify(ListenerCollection.java:80) org.apache.wicket.request.cycle.RequestCycleListenerCollection.onException(RequestCycleListenerCollection.java:121) org.apache.wicket.request.cycle.RequestCycle.handleException(RequestCycle.java:379) org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:325) org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:260) org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:276) org.apache.wicket.protocol.ws.AbstractUpgradeFilter.processRequestCycle(AbstractUpgradeFilter.java:66) org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:207) org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:306) Root Cause
javax.xml.ws.WebServiceException: Remote exception with status code: NOT_FOUND
org.apache.syncope.client.lib.RestClientExceptionMapper.fromResponse(RestClientExceptionMapper.java:76)
org.apache.syncope.client.lib.RestClientExceptionMapper.fromResponse(RestClientExceptionMapper.java:42)
org.apache.cxf.jaxrs.client.ClientProxyImpl.checkResponse(ClientProxyImpl.java:422)
org.apache.cxf.jaxrs.client.ClientProxyImpl.handleResponse(ClientProxyImpl.java:1002)
org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:907)
org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:345)
com.sun.proxy.$Proxy206.platform(Unknown Source)
org.apache.syncope.client.console.SyncopeConsoleSession.
L'esercizio diceva:
Vedo il nuovo servizio REST che però è semplicemente la copia di quello del mio post.
Il nuovo servizio fa implementato secondo le specifiche qua sopra, aiutandosi con il post per capire come si aggiunge un servizio REST.