https://issues.apache.org/bugzilla/show_bug.cgi?id=54659

            Bug ID: 54659
           Summary: Echo Websocket Sample using Annotation API throws
                    IllegalStateException
           Product: Tomcat 8
           Version: trunk
          Hardware: PC
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Examples
          Assignee: dev@tomcat.apache.org
          Reporter: stefan.eggerstor...@gmail.com
    Classification: Unclassified

Using the annotation API of the echo websocket example, following exception is
thrown:

java.lang.IllegalStateException: Failed to create configurator of type
[javax.websocket.server.ServerEndpointConfig$Configurator] for POJO of type
[java.lang.Class]
    at
org.apache.tomcat.websocket.server.WsServerContainer.getServerEndpointConfiguration(WsServerContainer.java:219)
    at org.apache.tomcat.websocket.server.WsServlet.doGet(WsServlet.java:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:223)
    at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:107)
    at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474)
    at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
    at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:75)
    at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:922)
    at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:90)
    at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:447)
    at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:971)
    at
org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:234)
    at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
    at
org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
    at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
    at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1540)
    at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.InstantiationException
    at
sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:48)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at java.lang.Class.newInstance0(Class.java:372)
    at java.lang.Class.newInstance(Class.java:325)
    at
org.apache.tomcat.websocket.server.WsServerContainer.getServerEndpointConfiguration(WsServerContainer.java:217)
    ... 22 more

I suppose this is caused by the default value of ServerEndpoint.Configurator:
public Class<? extends ServerEndpointConfig.Configurator> configurator() 
  default ServerEndpointConfig.Configurator.class;

ServerEndpointConfig.Configurator is an abstract class and this causes the
newInstance call to fail.

I could bypass this issue by using the class DefaultServerEndpointConfigurator
as configurator in the echo example:
@ServerEndpoint(value = "/websocket/echoAnnotation", configurator =
DefaultServerEndpointConfigurator.class)

I assume this class should be the default value for
ServerEndpointConfig.Configurator.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to