AtmosphereHandler not being found, when using NetBeans IDE - Atmosphere/atmosphere GitHub Wiki

This article might be helpful, if you use:

  • NetBeans IDE (version before 7.0.1?)
  • GlassFish 3.1.2.2
  • Atmosphere with WebSockets only
  • Java server and JavaScript client

Problem:

You might run into these exceptions right after start-up:

Schwerwiegend: 1421 [http-thread-pool-8080(1)] WARN org.atmosphere.container.GlassFishWebSocketSupport - failed to connect to web socket 
Schwerwiegend: org.atmosphere.cpr.AtmosphereMappingException: No AtmosphereHandler maps request for /WebSocketTest/

And after sending a WebSocket request:

Schwerwiegend: 21718 [http-thread-pool-8080(1)] ERROR org.atmosphere.cpr.AsynchronousProcessor - No AtmosphereHandler found. Make sure you define it inside WEB-INF/atmosphere.xml or annotate using @AtmosphereHandlerService 
Schwerwiegend: 21720 [http-thread-pool-8080(1)] WARN org.atmosphere.websocket.DefaultWebSocketProcessor - Failed invoking AtmosphereFramework.doCometSupport() 
Schwerwiegend: org.atmosphere.cpr.AtmosphereMappingException: No AtmosphereHandler found. Make sure you define it inside WEB-INF/atmosphere.xml or annotate using @AtmosphereHandlerService

In case you are having troubles with AtmosphereHandler not being found, check the file sun-web.xml (or sometimes glassfish-web.xml). Older versions of NetBeans add a "context-root" element to the file automatically. It's value will be equal to the Maven artifactId (most likely your project name).

Solution: Remove the "context-root" element or set it's value to "/".

Warning: Older NetBeans versions will recreate/refresh the element, each time you deploy your project.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD GlassFish Application Server 3.0 Servlet 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_3_0-0.dtd">
<sun-web-app error-url="">
    <!-- Remove the context-root element or set it to "/" -->
    <!-- <context-root>/WebSocketTest</context-root> -->
    <class-loader delegate="true"/>
  <jsp-config>
    <property name="keepgenerated" value="true">
      <description>Keep a copy of the generated servlet class' java code.</description>
    </property>
  </jsp-config>-
  </sun-web-app>

Also check out this issue in the NetBeans bugtracker: Netbeans regenerates glassfish-web.xml every deploy

⚠️ **GitHub.com Fallback** ⚠️