java.lang.RuntimeException: Could not find an implementation class

1,055 views
Skip to first unread message

khandela

unread,
Oct 29, 2018, 7:26:45 AM10/29/18
to cometd-users
I am trying to build a Java test application around CometD server. When I try to use websocket Transport it throws RunTimeException mentioned below. 

It's a maven application where I have already specified required dependencies  as per https://docs.cometd.org/current4/reference/#_java_client_transports 


9.2.5.3. WebSocket Transport Dependencies

The dependencies for the JSR 356 WebSocket transport are:

  • org.cometd.java:cometd-java-websocket-javax-client (and transitive dependencies)

  • an SLF4J (the logging library) implementation such as org.slf4j:slf4j-simple (recommended: org.apache.logging.log4j:log4j-slf4j-impl or ch.qos.logback:logback-classic).

The dependencies for the Jetty WebSocket transport are:

  • org.cometd.java:cometd-java-websocket-jetty-client (and transitive dependencies)

  • an SLF4J (the logging library) implementation such as org.slf4j:slf4j-simple (recommended: org.apache.logging.log4j:log4j-slf4j-impl or ch.qos.logback:logback-classic).

Maven will automatically pull the transitive dependencies that each artifact needs.



ava.lang.RuntimeException: Could not find an implementation class.
at javax.websocket.ContainerProvider.getWebSocketContainer(ContainerProvider.java:73)
at cometd.CometDTest.cometDPublishTest(CometDTest.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

Simone Bordet

unread,
Oct 29, 2018, 7:31:19 AM10/29/18
to cometd...@googlegroups.com
Hi,

On Mon, Oct 29, 2018 at 12:26 PM khandela <anujm...@gmail.com> wrote:
>
> I am trying to build a Java test application around CometD server. When I try to use websocket Transport it throws RunTimeException mentioned below.
>
> It's a maven application where I have already specified required dependencies as per https://docs.cometd.org/current4/reference/#_java_client_transports
>
>
> 9.2.5.3. WebSocket Transport Dependencies
>
> The dependencies for the JSR 356 WebSocket transport are:
>
> org.cometd.java:cometd-java-websocket-javax-client (and transitive dependencies)
>
> an SLF4J (the logging library) implementation such as org.slf4j:slf4j-simple (recommended: org.apache.logging.log4j:log4j-slf4j-impl or ch.qos.logback:logback-classic).
>
> The dependencies for the Jetty WebSocket transport are:
>
> org.cometd.java:cometd-java-websocket-jetty-client (and transitive dependencies)
>
> an SLF4J (the logging library) implementation such as org.slf4j:slf4j-simple (recommended: org.apache.logging.log4j:log4j-slf4j-impl or ch.qos.logback:logback-classic).
>
> Maven will automatically pull the transitive dependencies that each artifact needs.
>
>
>
> ava.lang.RuntimeException: Could not find an implementation class.
> at javax.websocket.ContainerProvider.getWebSocketContainer(ContainerProvider.java:73)

This means you don't have
javax-websocket-client-impl-9.4.12.v20180830.jar in your classpath.

Double check your pom.xml file for the correct dependencies.

--
Simone Bordet
----
http://cometd.org
http://webtide.com
Developer advice, training, services and support
from the Jetty & CometD experts.

khandela

unread,
Oct 29, 2018, 7:52:33 AM10/29/18
to cometd-users
Thanks, It worked seamless. 
Reply all
Reply to author
Forward
0 new messages