2017-06-30 1 views
0

J'essaie de suivre le tutoriel de Vaadin Spring et j'obtiens une erreur lors de la configuration du servlet.SpringVaadinServlet appelant une méthode manquante de VaadinServlet?

Voici ma classe d'interface utilisateur basée hors du tutoriel:

@SpringUI 
@Theme("valo") 

public class MyUI extends UI { 


@Override 
protected void init(VaadinRequest request) { 

} 

@WebServlet(urlPatterns = { "/MyUI/*", "/VAADIN/*" }, name = "MyUIServlet", asyncSupported = true) 
public static class OperationRoomUIServlet extends SpringVaadinServlet { 

} 

Voici le message d'erreur:

java.lang.NoSuchMethodError: com.vaadin.server.VaadinServletService.addSessionInitListener(Lcom/vaadin/server/SessionInitListener;)Lcom/vaadin/shared/Registration; 
at com.vaadin.spring.server.SpringVaadinServlet.servletInitialized(SpringVaadinServlet.java:75) 
at com.vaadin.server.VaadinServlet.init(VaadinServlet.java:234) 
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1227) 
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1140) 
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:817) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:509) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1104) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1524) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1480) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Unknown Source) 

Si j'ai juste le configurer comme une servlet régulière Vaadin il fonctionne , mais j'essaie de l'intégrer avec le printemps afin que je puisse l'utiliser comme mon

@WebServlet(urlPatterns = { "/MyUI/*", "/VAADIN/*" }, name = "MyUISevlet", asyncSupported = true) 
public static class MyUISevlet extends VaadinServlet { 

} 
+0

Je ne peux pas comprendre la question. J'utilise @SpringUI (path = "client") – efekctive

+0

@efekctive Hey merci pour la réponse. Comme l'a dit Artur Signell, j'utilisais Vaadin Spring 2 qui est pour Vaadin 8. La rétrogradation de Vaadin Spring à 1.2 corrige le problème – LR07

+0

Pas de problème, j'ai mal lu l'op – efekctive

Répondre

1

Vous utilisez probablement Vaadin Sp ring 2, qui est pour Vaadin Framework 8 mais qui a inclus des pots Vaadin Framework 7 dans le projet.

Dans cadre Vaadin 8, la méthode existe https://github.com/vaadin/framework/blob/8.0/server/src/main/java/com/vaadin/server/VaadinService.java#L447

mais dans cadre Vaadin 7, il a une signature différente https://github.com/vaadin/framework/blob/7.7/server/src/main/java/com/vaadin/server/VaadinService.java#L415

+0

Salut merci pour la réponse. Changer la version en 1.2.0 l'a corrigé. Dans les documents Vaadin même pour Vaadin 7 il est dit d'utiliser la dernière version. Probablement juste une erreur de leur part – LR07

+0

@ LR07 offtopic, juste fyi Artur fait partie de [l'équipe Vaadin] (https://vaadin.com/company) :-) – Morfic