Creation / Update utilisateur (5.0.0.-rc2)

Bonjour,

Depuis la mise à jour de 5.0.0 rc1 vers rc2, impossible de créer ou de modifier un utilisateur:

java.lang.NoSuchMethodException: com.axelor.auth.AuthService.validate(com.axelor.rpc.ActionRequest, com.axelor.rpc.ActionResponse)
	at java.lang.Class.getMethod(Class.java:1786)
	at com.axelor.meta.ActionHandler.call(ActionHandler.java:156)
	at com.axelor.meta.schema.actions.ActionMethod.evaluate(ActionMethod.java:80)
	at com.axelor.meta.schema.actions.ActionMethod.wrap(ActionMethod.java:85)
	at com.axelor.meta.schema.actions.ActionGroup.evaluate(ActionGroup.java:225)
	at com.axelor.meta.schema.actions.ActionGroup.wrap(ActionGroup.java:378)
	at com.axelor.meta.ActionHandler.execute(ActionHandler.java:379)
	at com.axelor.web.service.ActionService.execute(ActionService.java:101)
	at com.axelor.web.service.ActionService$$EnhancerByGuice$$727a49e4.CGLIB$execute$1()
	at com.axelor.web.service.ActionService$$EnhancerByGuice$$727a49e4$$FastClassByGuice$$ed29834f.invoke()
	at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
	at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76)
	at com.axelor.rpc.RequestFilter.invoke(RequestFilter.java:59)
	at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77)
	at com.axelor.rpc.ResponseInterceptor.invoke(ResponseInterceptor.java:65)
	at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77)
	at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55)
	at com.axelor.web.service.ActionService$$EnhancerByGuice$$727a49e4.execute()
	at sun.reflect.GeneratedMethodAccessor354.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:294)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:248)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:235)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:398)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:205)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:228)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89)
	at com.axelor.db.tenants.AbstractTenantFilter.doFilter(AbstractTenantFilter.java:73)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:44)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at com.axelor.auth.AuthFilter.doFilterInternal(AuthFilter.java:82)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:41)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at com.axelor.app.internal.AppFilter.doFilter(AppFilter.java:94)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:91)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at com.axelor.db.tenants.AbstractTenantFilter.doFilter(AbstractTenantFilter.java:73)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at com.axelor.web.servlet.CorsFilter.doFilter(CorsFilter.java:136)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120)
	at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:394)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748) 

Dans le catalina.out;
org.jboss.resteasy.resteasy_jaxrs.i18n : RESTEASY002142: Multiple resource methods match request "POST /rest/com.axelor.auth.db.User/search". Selecting one. Matching methods: [public com.axelor.rpc.Response com.axelor.web.service.RestService.find(com.axelor.rpc.Request), public com.axelor.rpc.Response com.axelor.web.service.RestService.update(long,com.axelor.rpc.Request)]

La méthode public void validate(ActionRequest request, ActionResponse response) a été supprimée dans la classe AuthService lors du commit ce3809d (Improve user password change requests) mais à priori l’appel à cette méthode a aussi été supprimée dans User.xml

Merci de votre aide

Bonjour,

Pour résoudre le problème j’ai été dans l’obligation de créer une nouvelle base de données vierge.
Lors des mises à jour RC ou MAJOR pourriez-vous préciser les actions à mener sur la base de données afin d’éviter de perdre toutes les données ? un cache à vider ?

Merci pour votre aide

Bonjour,

Il me semble que les migrations de base sont justement l’un des intérêts d’utiliser la version commerciale…

Cordialement

Bonjour,

Je peux tout à fait comprendre cela mais néanmoins intégrer un commentaire dans le readme pour juste décrire ce qui doit être fait dans la base entre chaque version est un minimum (reinit des méta, vues, etc.). C’est d’ailleurs le cas pour le passage V4 vers V5 même si le descriptif est très loin d’être complet.

Mon problème résidait juste dans le User.xml qui était toujours en rc1…comme la documentation est très loin d’être complète difficile de comprendre où sont stockées ces données.

Cdlt

Bonjour,

A chaque mise à jour, majeur ou mineur, il est nécessaire de réinitialiser les vues pour récupérer les dernières modifications. (Administrations >> Les vues >> Tout restaurer)

Le journal des modifications (https://github.com/axelor/axelor-business-suite/blob/master/CHANGELOG.md) permet de connaitre les modifications apportées sur chaque version, avec la liste des commits concernés (lien sur le nom de version).

La version commerciale permet en plus d’obtenir les éventuels scripts SQL de migration du schéma de base de données si celui-ci a évolué. Cela correspond à un service et non au produit lui-même…

Cordialement

Bonjour,

Merci beaucoup pour votre réponse.
C’est une étape que je n’avais pas encore intégrée dans le processus de mise à jour.

Cdlt

Bonjour,

Pourriez-vous lors d’une prochaine release permettre la restauration des vue par module et non de manière globale ?

Merci