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: [email protected]
Reporter: [email protected]
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: [email protected]
For additional commands, e-mail: [email protected]