Context Menu won't appear

I added ContextMenu 0.73(https://github.com/vaadin/context-menu) into my springboot project with vaadin.

I tried the ContextMenu in Tree, the menu won’t display.
So I imported the demo UI and theme into my project, the UI looks the same as the demo(http://demo.vaadin.com/context-menu-demo/)

But when I right click the button ,grid or table column, the notification appear but menu never showed up.
What did I miss?

Please help, I am new baby on spring boot and vaadin.

Thank you!

That addon has a client-side part, did you recompile the widgetset? If you are in eclipse, there should be a toolbar button for it (if you have the vaadin eclipse plugin). If you are using maven, then call ‘mvn vaadin:compile’.

I tried to recompile the widgetset, but I got following error:

[INFO]
Scanning for projects…
[INFO]
Downloading: https://repo.maven.apache.org/maven2/org/codehaus/mojo/maven-metadata.xml
[INFO]
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml
[INFO]
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml (13 KB at 2.8 KB/sec)
[INFO]
Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/mojo/maven-metadata.xml (20 KB at 4.3 KB/sec)
[INFO]

[INFO]
BUILD FAILURE
[INFO]

[INFO]
Total time: 5.943 s
[INFO]
Finished at: 2016-08-17T09:33:02-07:00
[INFO]
Final Memory: 19M/228M
[INFO]

[WARNING]
The requested profile “pom.xml” could not be activated because it does not exist.
[ERROR]
No plugin found for prefix ‘vaadin’ in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo]
available from the repositories [local (/Users/jian/.m2/repository), central (https://repo.maven.apache.org/maven2)]
→ [Help 1]

[ERROR]

[ERROR]
To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR]
Re-run Maven using the -X switch to enable full debug logging.
[ERROR]

[ERROR]
For more information about the errors and possible solutions, please read the following articles:
[ERROR]
[Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/NoPluginFoundForPrefixException

Please help me!

Thank you!

I got the widgetset compiled, but the menu still not showing up, please help me.

Thank you!

Next step is to check if your application is actually using the correct widgetset. one easy way to check is to add ?debug to your url, which opens the vaadin debug window. Under the info tab, vaadin tells you the name of the widgetset. If it is wrong (defaultwidgetset, for instance), then you have to point the application to your widgetset. You can do this either in the servlet or ui class annotations (@VaadinServletConfiguration for servlet, @Widgetset for ui).

Now that I think about it, it isn’t that obvious that you actually have your own widgetset. Just to make sure, do you have a widgetset definition file in your project?

No I don’t have any widgetset in my project.

I found this plugin: wscdn-maven-plugin, after compile and I start my UI with ?debug
Now I saw following in info tab

Client engine version7.6.3
Server engine version7.6.3
Theme version7.6.3
Widget set com.vaadin.DefaultWidgetSet
Theme reindeer
Communication methodClient to server: XHR, server to client: -
Heartbeat300s

If I right the tree, then I got exception:
Uncaught client side exception

Error performing server to client RCP callsjava.lang.IllegalStateException: There is no information about
com.vaadin.addon.contextmenu.client.ContextMenuClientRpc.showContextMenu. Did you remember to compile the right widgetset?

at Unknown.Hg(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.Lg(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.Rg(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.QGd(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.zPb(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.BPb(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.APb(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.POb(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.OOb(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.tOb(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.uOb(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.qOb(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.Qx(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.ly(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.eval(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.oi(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.ri(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.eval(com.vaadin.DefaultWidgetSet-0.js)
Caused by: com.vaadin.client.metadata.NoDataException: There are no parameter type data for
com.vaadin.addon.contextmenu.client.ContextMenuClientRpc.showContextMenu
at Unknown.Hg(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.og(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.lic(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.Yic(com.vaadin.DefaultWidgetSet-0.js)
at Unknown.zPb(com.vaadin.DefaultWidgetSet-0.js)

If I added following as https://wscdn.vaadin.com/ says for Spring Boot

@Bean public com.vaadin.wscdn.WidgetSet vaadinCdnInitializer() { return new com.vaadin.wscdn.WidgetSet(); }

I can’t compile the project any more.

Please help me!
Thank you!

OK, lets start from the beginning. The widgetset is the pre-compiled javascript files that contain the vaadin code that is run inside a browser. All vaadin projects need this. By default, we provide the DefaultWidgetset that contains everything that is part of vaadin. But if you want to use addons (as you do), you need to somehow add the code from the addons to the widgetset (which is what we are trying to do). You do this by compiling your own widgetset using the vaadin-client-compiler JAR file and ‘mvn vaadin:compile’-command. Please check your pom file to make sure you have the
vaadin-client-compiler
dependency, and that you do NOT have the
vaadin-client-compiled
dependency. You can also remove the wscdn dependency that you added.

Now, for the compilation to work properly, you need to tell the compiler what you want it to do. This is done with a widgetset definition file. It is an XML file in your resources folder, typically inside some package, like this: com/yourcompany/yourapp/YourWidgetset.gwt.xml. The content looks like this:

[code]

<?xml version="1.0" encoding="UTF-8"?> [/code]As you can see, we extend the default widget set. If you have the file, we can start the compilation. Run this maven command:
mvn vaadin:clean vaadin:update-widgetset vaadin:compile
[/code]This will scan your classpath for any add-ons, add them to your XML file, and compile a new widgetset. You can check if it worked by opening your widgetset folder under src/main/webapp/VAADIN/widgetsets, it should have a folder called com.yourcompany.yourapp.YourWidgetset. The folder name is your widgetset name. Now, the only thing you need to do, is tell your app to use the widgetset, either in server.xml:[code]
<servlet>
…​
  <init-param>
    <description>Widget Set to Use</description>
    <param-name>widgetset</param-name>
    <param-value>com.yourcompany.yourapp.YourWidgetset</param-value>
  </init-param>
</servlet

Or with an annotation on the UI class:

@Widgetset("com.yourcompany.yourapp.YourWidgetset") Or with the servlet configuration widgetset:

@VaadinServletConfiguration(... , widgetset="com.yourcompany.yourapp.YourWidgetset")

You should be good to go now.

The last thing to remember is that all developers on the project will need to do this for the project to work for them, OR, you can add the widgetset files to your source repository. They do not contain anything machine-dependent, so everyone can use the same files you compiled. The next time when you add (or remove) add-ons, do the compilation again (the maven command above). You can also read the Book of Vaadin on add-ons:
https://vaadin.com/docs/-/part/framework/addons/addons-maven.html

That’s it, hope this helps :slight_smile:

Thomas,

Thank you such detailed contents, I am following with your steps in past few days, I can’t even debug the application any more, I was thinking it’s the problem of the dependency, but after lots of fail trail, I removed the adds-on from my project, it compile and run without any problem, but once I added the adds on to project, it compiles fine, but it won’t start, the following is the exception:
2016-08-26 09:06:06.236 ERROR 8768 — [ main]
o.s.boot.SpringApplication : Application startup failed

java.lang.NoClassDefFoundError: javax/servlet/jsp/JspFactory
at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:77) ~[vaadin-client-compiler-7.6.3.jar:7.6.3]

at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:640) ~[jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:419) ~[jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:875) ~[jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.springframework.boot.context.embedded.jetty.JettyEmbeddedWebAppContext$JettyEmbeddedServletHandler.deferredInitialize(JettyEmbeddedWebAppContext.java:46) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.context.embedded.jetty.JettyEmbeddedWebAppContext.deferredInitialize(JettyEmbeddedWebAppContext.java:36) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer.handleDeferredInitialize(JettyEmbeddedServletContainer.java:186) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer.start(JettyEmbeddedServletContainer.java:121) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:297) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:145) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:544) ~[spring-context-4.3.2.RELEASE.jar:4.3.2.RELEASE]

at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:369) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:313) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1185) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1174) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at com.microchip.esdev.dbas.web.DbasWebApplication.main(DbasWebApplication.java:10) [classes/:na]

Caused by: java.lang.ClassNotFoundException: javax.servlet.jsp.JspFactory
at java.net.URLClassLoader.findClass(Unknown Source) ~[na:1.8.0_92]

at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_92]

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ~[na:1.8.0_92]

at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_92]

... 18 common frames omitted

2016-08-26 09:06:06.237 INFO 8768 — [ main]
ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@6c2c1385: startup date [Fri Aug 26 09:06:02 PDT 2016]
; root of context hierarchy
2016-08-26 09:06:06.238 INFO 8768 — [ main]
o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
2016-08-26 09:06:06.241 WARN 8768 — [ main]
org.eclipse.jetty.servlet.ServletHolder :

java.lang.NullPointerException: null
at org.apache.jasper.servlet.JspServlet.destroy(JspServlet.java:254) ~[vaadin-client-compiler-7.6.3.jar:7.6.3]

at org.eclipse.jetty.servlet.ServletHolder.destroyInstance(ServletHolder.java:475) ~[jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.servlet.ServletHolder.doStop(ServletHolder.java:446) ~[jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:143) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:161) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:73) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.servlet.ServletHandler.doStop(ServletHandler.java:226) [jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:143) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:161) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:73) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.security.SecurityHandler.doStop(SecurityHandler.java:381) [jetty-security-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.security.ConstraintSecurityHandler.doStop(ConstraintSecurityHandler.java:456) [jetty-security-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:143) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:161) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:73) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.session.SessionHandler.doStop(SessionHandler.java:127) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:143) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:161) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:73) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.handler.ContextHandler.stopContext(ContextHandler.java:825) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.servlet.ServletContextHandler.stopContext(ServletContextHandler.java:356) [jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.webapp.WebAppContext.stopWebapp(WebAppContext.java:1410) [jetty-webapp-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.webapp.WebAppContext.stopContext(WebAppContext.java:1374) [jetty-webapp-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.handler.ContextHandler.doStop(ContextHandler.java:880) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.servlet.ServletContextHandler.doStop(ServletContextHandler.java:272) [jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.webapp.WebAppContext.doStop(WebAppContext.java:544) [jetty-webapp-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:143) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:161) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:73) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.Server.doStop(Server.java:482) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer.stop(JettyEmbeddedServletContainer.java:201) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.stopAndReleaseEmbeddedServletContainer(EmbeddedWebApplicationContext.java:306) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onClose(EmbeddedWebApplicationContext.java:155) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1010) [spring-context-4.3.2.RELEASE.jar:4.3.2.RELEASE]

at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:956) [spring-context-4.3.2.RELEASE.jar:4.3.2.RELEASE]

at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:815) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:324) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1185) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1174) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at com.microchip.esdev.dbas.web.DbasWebApplication.main(DbasWebApplication.java:10) [classes/:na]

This is my POM.xml

<?xml version="1.0" encoding="UTF-8"?>


4.0.0

<groupId>com.microchip.esdev.dbas.web</groupId>
<artifactId>DBASWeb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>DBASWeb</name>
<description>DBAS Web with Spring boot</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.0.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-spring-boot-starter</artifactId>
        <version>1.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
       <groupId>com.vaadin.addon</groupId>
       <artifactId>vaadin-context-menu</artifactId>
       <version>0.7.3</version>
    </dependency>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-client-compiler</artifactId>
    </dependency>
</dependencies>
<repositories>
    <repository>
       <id>vaadin-addons</id>
       <url>http://maven.vaadin.com/vaadin-addons</url>
    </repository>
</repositories>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-bom</artifactId>
            <version>7.6.3</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
         <plugin>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-maven-plugin</artifactId>
            <executions>
                  <goals>
                    <goal>update-theme</goal>
                    <goal>compile-theme</goal>
                    <!-- 
                    <goal>clean</goal>
                    <goal>resources</goal>
                    <goal>compile</goal>
                    <goal>update-widgetset</goal>
                    -->
                  </goals>
               </execution>
            </executions>
         </plugin>
    </plugins>
</build>

I have added VaadinAddsonWidgetset.gwt.xml as following:

<?xml version="1.0" encoding="UTF-8"?>
<inherits name="com.vaadin.addon.contextmenu.WidgetSet" />

What am I missing? please help!
Thank you!

Caused by: java.lang.ClassNotFoundException: javax.servlet.jsp.JspFactory That’s a strange issue to have; first guess is that you have issues with the dependencies in your classpath. Either you don’t have the correct dependencies, or you have multiple versions.

I tried your pom.xml. First of all, it is invalid; you have a closing tag but not a starting one. Second, add provided to vaadin-client-compiler (it should not be deployed). Fix those and report back please.

I removed all my local maven repository, and let Spring Tool Suite to download all dependencies.
Here is updated pom.xml

<?xml version="1.0" encoding="UTF-8"?>


4.0.0

<groupId>com.microchip.esdev.dbas.web</groupId>
<artifactId>DBASWeb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>DBASWeb</name>
<description>DBAS Web with Spring boot</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.0.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <vaadin.version>7.6.3</vaadin.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-aop</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-spring-boot-starter</artifactId>
        <version>1.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
       <groupId>com.vaadin.addon</groupId>
       <artifactId>vaadin-context-menu</artifactId>
       <version>0.7.3</version>
    </dependency>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-client-compiler</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>
<repositories>
    <repository>
       <id>vaadin-addons</id>
       <url>http://maven.vaadin.com/vaadin-addons</url>
    </repository>
</repositories>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-bom</artifactId>
            <version>${vaadin.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
         <plugin>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-maven-plugin</artifactId>
            <executions>
               <execution>
                  <goals>
                    <goal>update-theme</goal>
                    <goal>compile-theme</goal>
                  </goals>
               </execution>
            </executions>
         </plugin>
    </plugins>
</build>

Still the same problem:
2016-08-29 09:01:39.200 ERROR 2016 — [ main]
o.s.boot.SpringApplication : Application startup failed

java.lang.NoClassDefFoundError: javax/servlet/jsp/JspFactory
at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:77) ~[vaadin-client-compiler-7.6.3.jar:7.6.3]

at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:640) ~[jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:419) ~[jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:875) ~[jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.springframework.boot.context.embedded.jetty.JettyEmbeddedWebAppContext$JettyEmbeddedServletHandler.deferredInitialize(JettyEmbeddedWebAppContext.java:46) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.context.embedded.jetty.JettyEmbeddedWebAppContext.deferredInitialize(JettyEmbeddedWebAppContext.java:36) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer.handleDeferredInitialize(JettyEmbeddedServletContainer.java:186) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer.start(JettyEmbeddedServletContainer.java:121) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:297) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:145) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:544) ~[spring-context-4.3.2.RELEASE.jar:4.3.2.RELEASE]

at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:369) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:313) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1185) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1174) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at com.microchip.esdev.dbas.web.DbasWebApplication.main(DbasWebApplication.java:10) [classes/:na]

Caused by: java.lang.ClassNotFoundException: javax.servlet.jsp.JspFactory
at java.net.URLClassLoader.findClass(Unknown Source) ~[na:1.8.0_92]

at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_92]

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ~[na:1.8.0_92]

at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_92]

... 18 common frames omitted

2016-08-29 09:01:39.201 INFO 2016 — [ main]
ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@7efaad5a: startup date [Mon Aug 29 09:01:36 PDT 2016]
; root of context hierarchy
2016-08-29 09:01:39.203 INFO 2016 — [ main]
o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
2016-08-29 09:01:39.206 WARN 2016 — [ main]
org.eclipse.jetty.servlet.ServletHolder :

java.lang.NullPointerException: null
at org.apache.jasper.servlet.JspServlet.destroy(JspServlet.java:254) ~[vaadin-client-compiler-7.6.3.jar:7.6.3]

at org.eclipse.jetty.servlet.ServletHolder.destroyInstance(ServletHolder.java:475) ~[jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.servlet.ServletHolder.doStop(ServletHolder.java:446) ~[jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:143) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:161) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:73) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.servlet.ServletHandler.doStop(ServletHandler.java:226) [jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:143) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:161) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:73) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.security.SecurityHandler.doStop(SecurityHandler.java:381) [jetty-security-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.security.ConstraintSecurityHandler.doStop(ConstraintSecurityHandler.java:456) [jetty-security-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:143) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:161) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:73) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.session.SessionHandler.doStop(SessionHandler.java:127) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:143) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:161) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:73) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.handler.ContextHandler.stopContext(ContextHandler.java:825) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.servlet.ServletContextHandler.stopContext(ServletContextHandler.java:356) [jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.webapp.WebAppContext.stopWebapp(WebAppContext.java:1410) [jetty-webapp-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.webapp.WebAppContext.stopContext(WebAppContext.java:1374) [jetty-webapp-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.handler.ContextHandler.doStop(ContextHandler.java:880) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.servlet.ServletContextHandler.doStop(ServletContextHandler.java:272) [jetty-servlet-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.webapp.WebAppContext.doStop(WebAppContext.java:544) [jetty-webapp-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:143) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:161) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:73) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.server.Server.doStop(Server.java:482) [jetty-server-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89) [jetty-util-9.3.11.v20160721.jar:9.3.11.v20160721]

at org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer.stop(JettyEmbeddedServletContainer.java:201) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.stopAndReleaseEmbeddedServletContainer(EmbeddedWebApplicationContext.java:306) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onClose(EmbeddedWebApplicationContext.java:155) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1010) [spring-context-4.3.2.RELEASE.jar:4.3.2.RELEASE]

at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:956) [spring-context-4.3.2.RELEASE.jar:4.3.2.RELEASE]

at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:815) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:324) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1185) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1174) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]

at com.microchip.esdev.dbas.web.DbasWebApplication.main(DbasWebApplication.java:10) [classes/:na]

2016-08-29 09:01:39.209 INFO 2016 — [ main]
application : Destroying Spring FrameworkServlet ‘dispatcherServlet’
2016-08-29 09:01:39.209 INFO 2016 — [ main]
o.e.jetty.server.handler.ContextHandler : Stopped o.s.b.c.e.j.JettyEmbeddedWebAppContext@ae2db25{/,file:///C:/Users/Jian/AppData/Local/Temp/jetty-docbase.6380191618769923041.9001/,UNAVAILABLE}

It’s difficult for me to help here, because I don’t know what’s going on. The stacktrace references the client compiler-jar file, which it should not do since you have marked it as provided.

Normally when I get a ClassNotFound I am missing a dependency, which might be true here as well. But in this case I’d start with triple-checking that the client-compiler JAR is not deployed to the server. One way to do that is to check the servers work-folder to see what the resulting WAR file looks like. This is Spring however, so I’m not sure if that will work (I don’t know exactly how spring packages the application).

I think i had the same problem. For others who happens to have the same problem. here is how I solved it - with help of Matti
I added ?debug and found out that widgetset isnt compiled.
http://localhost:8080/?debug

You should add vaadin-maven-plugin, like in this example project:
https://github.com/mstahv/ spring-data-vaadin-crud/blob/ master/pom.xml#L154-L169

then maven update project. and done :wink: