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