I'm trying to follow the Vaadin Spring tutorial and I'm getting an error setting up the servlet.
Here is my UI class based off of the tutorial:
@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 {
}
Here is the error message:
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)
If I have the just set it up as a regular vaadin servlet it works, but I'm trying to integrate it with Spring so I can use it as my
@WebServlet(urlPatterns = { "/MyUI/*", "/VAADIN/*" }, name = "MyUISevlet", asyncSupported = true)
public static class MyUISevlet extends VaadinServlet {
}
You are probably using Vaadin Spring 2, which is for Vaadin Framework 8 but have included Vaadin Framework 7 jars somehow in the project.
In Vaadin Framework 8, the method exists https://github.com/vaadin/framework/blob/8.0/server/src/main/java/com/vaadin/server/VaadinService.java#L447
but in Vaadin Framework 7, it has a different signature https://github.com/vaadin/framework/blob/7.7/server/src/main/java/com/vaadin/server/VaadinService.java#L415