problems remote-debugging a working application on tomcat

I have my application running under tomcat 7 on a linux machine. The application runs fine, except now I want to step through some code running on the server in debug mode. I restarted tomcat with the following script:

BASEDIR=/global/lynx_home/users/pkrouse/tomcat7_ll CATALINA_BASE=/global/lynx_home/users/pkrouse/tomcat7_ll CATALINA_HOME=/global/lynx_home/users/pkrouse/tomcat7_ll JPDA_TRANSPORT=dt_socket JPDA_ADDRESS=8000 JPDA_SERVER=y JPDA_SUSPEND=n ./catalina.sh jpda start At this point I set a breakpoint very early in my app’s contextInitialized routine, go to eclipse, and attach to the process.

The application stops at my break point, so I know everything is in sync. At this point I resume execution so that I can log into my application and do something useful, go to my browser and go to the url for my application …
… aaaaand boom. I get the dreaded “Failed to load the widgetset:” popup.

I have a very simple application. I have no custom widgets, although I do use Vaadin Charts. My .gwt.xml file is:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.5.1//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.5.1/distro-source/core/src/gwt-module.dtd">
<module>
    <inherits name="com.vaadin.DefaultWidgetSet" />
    
    <!--
     Uncomment the following to compile the widgetset for one browser only.
      
     Multiple browsers can be specified as a comma separated list. The
     supported user agents at the moment of writing were:
     ie8,ie9,gecko1_8,safari,opera
     
     The value gecko1_8 is used for Firefox and safari is used for webkit
     based browsers including Google Chrome.
    -->
    <!-- <set-property name="user.agent" value="safari"/> -->
    
    <!--
     To enable SuperDevMode, uncomment this line.
     
     See https://vaadin.com/wiki/-/wiki/Main/Using%20SuperDevMode for more
     information and instructions.
    -->
    <!-- <set-configuration-property name="devModeRedirectEnabled" value="true" /> -->

     

    
    

    <inherits name="com.vaadin.addon.charts.Widgetset" />

    <inherits name="com.vaadin.addon.timeline.gwt.TimelineWidgetSet" />
</module>

And in fact the popup says it cannot load ./VAADIN/widgetsets, not my widgetset.

Others with similar problems got relief by recompiling widgetsets (I did that even though mine is apparently ok).
Still others say to clear the work and temp directories under tomcat. I did so to no effect.

I read the wiki entry on debugging at https://vaadin.com/wiki/-/wiki/Main/Debugging+Vaadin+applications
I didn’t see anything there that I missed. My web.xml is as follows:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" >
  <display-name>DesignTracker</display-name>
  <context-param>
        <description>Vaadin production mode</description>
        <param-name>productionMode</param-name>
        <param-value>false</param-value>
  </context-param>
  <context-param>
        <description>Admininstrator email</description>
        <param-name>appmaster</param-name>
        <param-value>pkrouse@synopsys.com</param-value>
  </context-param>
  <servlet>
        <servlet-name>DesignTracker Application</servlet-name>
        <servlet-class>com.vaadin.server.VaadinServlet</servlet-class>
        <init-param>
            <description>Vaadin UI class to use</description>
            <param-name>UI</param-name>
            <param-value>com.synopsys.lynx.gts.designtracker.DesigntrackerUI</param-value>
        </init-param>
        <init-param>
            <description>
            Legacy mode to return the value of the property as a string from AbstractProperty.toString()
            </description>
            <param-name>legacyPropertyToString</param-name>
            <param-value>false</param-value>
        </init-param>
        <!-- Enable server push -->
        <init-param>
            <param-name>pushmode</param-name>
            <param-value>manual</param-value>
        </init-param>
        <!-- ........................................................ -->
        <!--               CUSTOM WIDGETSET                           -->
        <!-- ........................................................ -->
        <!-- This is needed if you add any extensions (i.e. Charts) that add to the widgetset -->
        <init-param>
            <description>Application widgetset</description>
            <param-name>widgetset</param-name>
            <param-value>com.synopsys.lynx.gts.designtracker.widgetset.DesigntrackerWidgetset</param-value>
        </init-param>
        <async-supported>true</async-supported>
  </servlet>
    
  <!-- ======================================================== -->
  <!--      EXPERIMENT: try to route special urls into vaadin   -->
  <!-- ======================================================== -->
  <!-- 
  <servlet-mapping>
        <servlet-name>DesignTracker Application</servlet-name>
        <url-pattern>/validate/pkrouse/root_LynxProject1/web/ProjectStatus1.csv.vt</url-pattern>
  </servlet-mapping>
   -->
  <!-- ======================================================== -->
  <!--                   BROWSER HISTORY                        -->
  <!-- ======================================================== -->
  <!-- Intercepts static page requests for addition to browser history 
    in the application -->
    
  <servlet>
       <servlet-name>BrowserHistory</servlet-name>
       <servlet-class>com.synopsys.lynx.gts.designtracker.servlets.BrowserHistoryInterceptor</servlet-class>
  </servlet>
  <servlet-mapping>
        <servlet-name>BrowserHistory</servlet-name>
        <url-pattern>/validate/*</url-pattern> <!-- see ConfigFileUtil.VALIDATE_TAG -->
  </servlet-mapping>
  <servlet-mapping>
        <servlet-name>BrowserHistory</servlet-name>
        <url-pattern>/fix_absolute/*</url-pattern> <!-- rewritten absolute urls ( see ConfigFileUtil.VALIDATE_ABSOLUTE_TAG) -->
  </servlet-mapping>
    
  <!-- ======================================================== -->
  <!--                   VAADIN FRAMEWORK                       -->
  <!-- ======================================================== -->
  <!-- These two mappings specify the Vaadin framework and our application. -->
  <!-- This lets us keep things like common away from the active application pages -->
  <servlet-mapping>
        <servlet-name>DesignTracker Application</servlet-name>
        <url-pattern>/VAADIN/*</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
        <servlet-name>DesignTracker Application</servlet-name>
        <url-pattern>/app/*</url-pattern> <!-- means look in <machine:port>/DesignTracker/app -->
  </servlet-mapping>
  <!-- This one puts the static content back into the vaadin app, not what we want since redraw never happens -->
  <!-- 
  <servlet-mapping>
     <servlet-name>FileBrowser Application</servlet-name>
    <url-pattern>/common/*</url-pattern>
  </servlet-mapping>
  -->
  <!-- ======================================================== -->
  <!--                   TOMCAT STARTUP/SHUTDOWN HOOK           -->
  <!-- ======================================================== -->
  <listener>
        <listener-class>com.synopsys.lynx.gts.tomcat.listener.ApplicationListener</listener-class>
  </listener>
  
  <!-- ======================================================== -->
  <!--                         FILTERING                        -->
  <!-- ======================================================== -->
  <!-- The only job of the CacheControlFilter class is to make sure the latest file is always retrieved. -->
  <filter>
        <filter-name>SetCacheControl</filter-name>
        <filter-class>com.synopsys.lynx.gts.filebrowser.filter.CacheControlFilter</filter-class>
  </filter>
  <filter-mapping>
        <filter-name>SetCacheControl</filter-name>
        <!-- The url-pattern must point to the static area -->
        <url-pattern>/common/*</url-pattern> 
  </filter-mapping>
    
  <!-- ======================================================== -->
  <!--                           LOGGING                        -->
  <!-- ======================================================== -->
  <!-- Makes some logged messages viewable at url http://host/yourWebapp/logs -->
  <!-- example: http://lumen-lynx1:8888/DesignTracker/logs -->
  <servlet>
        <servlet-name>ViewStatusMessages</servlet-name>
        <servlet-class>ch.qos.logback.classic.ViewStatusMessagesServlet</servlet-class>
  </servlet>
  <servlet-mapping>
        <servlet-name>ViewStatusMessages</servlet-name>
        <url-pattern>/logs</url-pattern>
  </servlet-mapping>
    
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

What am I missing?