You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Jean-Louis MONTEIRO <je...@gmail.com> on 2021/04/08 13:10:31 UTC

TCK Failures on WebSocket

Hi,

I am running WebSocket TCK on TomEE and I'm having some issues.
Wondering if I missed some configuration.

Essentially the TCK is deploying an application with this class
https://github.com/eclipse-ee4j/jakartaee-tck/blob/master/src/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/OnMessageServerEndpoint.java

It fails to deploy

Caused by: jakarta.websocket.DeploymentException: De multiples
paramètres de message sont présents sur la méthode [echo] de la classe
[com.sun.ts.tests.websocket.negdep.onmessage.srv.binarybytebufferint.OnMessageServerEndpoint]
qui a été annotée avec OnMessage
   at org.apache.tomcat.websocket.pojo.PojoMethodMapping$MessageHandlerInfo.<init>(PojoMethodMapping.java:543)
   at org.apache.tomcat.websocket.pojo.PojoMethodMapping.<init>(PojoMethodMapping.java:139)
   at org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:154)
   at org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:278)
   at org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:126)


From the wiki, Tomcat is supposed to be passing the WebSocket TCK.
Do you have pointers to help?

Thanks

-- 
Jean-Louis

Re: TCK Failures on WebSocket

Posted by Jean-Louis MONTEIRO <je...@gmail.com>.
That is in line with the "negdep" sub package Mark mentioned.
I will need to work to exclude the deployment failures in this situation.

Thanks a lot for the information

Le jeu. 8 avr. 2021 à 15:43, Konstantin Kolinko <kn...@gmail.com> a
écrit :

> чт, 8 апр. 2021 г. в 16:10, Jean-Louis MONTEIRO <je...@gmail.com>:
> >
> > Hi,
> >
> > I am running WebSocket TCK on TomEE and I'm having some issues.
> > Wondering if I missed some configuration.
> >
> > Essentially the TCK is deploying an application with this class
> >
> https://github.com/eclipse-ee4j/jakartaee-tck/blob/master/src/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/OnMessageServerEndpoint.java
> >
> > It fails to deploy
> >
> > Caused by: jakarta.websocket.DeploymentException: De multiples
> > paramètres de message sont présents sur la méthode [echo] de la classe
> >
> [com.sun.ts.tests.websocket.negdep.onmessage.srv.binarybytebufferint.OnMessageServerEndpoint]
> > qui a été annotée avec OnMessage
> >    at
> org.apache.tomcat.websocket.pojo.PojoMethodMapping$MessageHandlerInfo.<init>(PojoMethodMapping.java:543)
> >    at
> org.apache.tomcat.websocket.pojo.PojoMethodMapping.<init>(PojoMethodMapping.java:139)
> >    at
> org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:154)
> >    at
> org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:278)
> >    at org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:126)
> >
> >
> > From the wiki, Tomcat is supposed to be passing the WebSocket TCK.
> > Do you have pointers to help?
>
> 1. Your link above are for class in package "nomoreendpoints".
>
> 2. but the package name mentioned in the message is
> "*.binarybytebufferint.*".
>
>
> https://github.com/eclipse-ee4j/jakartaee-tck/blob/master/src/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/OnMessageServerEndpoint.java
>
>
> https://github.com/eclipse-ee4j/jakartaee-tck/blob/master/src/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarybytebufferint/OnMessageServerEndpoint.java
>
> Either way, both classes are annotated with
> "@ServerEndpoint("/invalid")" and that path suggests that they are
> expected to fail.
>
>
> WebSocket spec (1.1) says that the requirements for methods annotated
> with @OnMessage are stated in javadoc for that annotation.
>
>
> https://cwiki.apache.org/confluence/display/TOMCAT/Specifications#Specifications-JavaAPIforWebSocket
> https://docs.oracle.com/javaee/7/api/javax/websocket/OnMessage.html
>
> <quote>
> Each websocket endpoint may only have one message handling method for
> each of the native websocket message formats: text, binary and pong.
> </quote>
>
> The class in package "nomoreendpoints":
> - It has two methods to handle text messages (full vs partial). It is
> not allowed.
>
> The class in package "binarybytebufferint":
> - Invalid parameters to handle partial binary messages. (expected:
> ByteBuffer + boolean, actual: ByteBuffer + int).
>
> Best regards,
> Konstantin Kolinko
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>

-- 
Jean-Louis

Re: TCK Failures on WebSocket

Posted by Konstantin Kolinko <kn...@gmail.com>.
чт, 8 апр. 2021 г. в 16:10, Jean-Louis MONTEIRO <je...@gmail.com>:
>
> Hi,
>
> I am running WebSocket TCK on TomEE and I'm having some issues.
> Wondering if I missed some configuration.
>
> Essentially the TCK is deploying an application with this class
> https://github.com/eclipse-ee4j/jakartaee-tck/blob/master/src/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/OnMessageServerEndpoint.java
>
> It fails to deploy
>
> Caused by: jakarta.websocket.DeploymentException: De multiples
> paramètres de message sont présents sur la méthode [echo] de la classe
> [com.sun.ts.tests.websocket.negdep.onmessage.srv.binarybytebufferint.OnMessageServerEndpoint]
> qui a été annotée avec OnMessage
>    at org.apache.tomcat.websocket.pojo.PojoMethodMapping$MessageHandlerInfo.<init>(PojoMethodMapping.java:543)
>    at org.apache.tomcat.websocket.pojo.PojoMethodMapping.<init>(PojoMethodMapping.java:139)
>    at org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:154)
>    at org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:278)
>    at org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:126)
>
>
> From the wiki, Tomcat is supposed to be passing the WebSocket TCK.
> Do you have pointers to help?

1. Your link above are for class in package "nomoreendpoints".

2. but the package name mentioned in the message is "*.binarybytebufferint.*".

https://github.com/eclipse-ee4j/jakartaee-tck/blob/master/src/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/OnMessageServerEndpoint.java

https://github.com/eclipse-ee4j/jakartaee-tck/blob/master/src/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarybytebufferint/OnMessageServerEndpoint.java

Either way, both classes are annotated with
"@ServerEndpoint("/invalid")" and that path suggests that they are
expected to fail.


WebSocket spec (1.1) says that the requirements for methods annotated
with @OnMessage are stated in javadoc for that annotation.

https://cwiki.apache.org/confluence/display/TOMCAT/Specifications#Specifications-JavaAPIforWebSocket
https://docs.oracle.com/javaee/7/api/javax/websocket/OnMessage.html

<quote>
Each websocket endpoint may only have one message handling method for
each of the native websocket message formats: text, binary and pong.
</quote>

The class in package "nomoreendpoints":
- It has two methods to handle text messages (full vs partial). It is
not allowed.

The class in package "binarybytebufferint":
- Invalid parameters to handle partial binary messages. (expected:
ByteBuffer + boolean, actual: ByteBuffer + int).

Best regards,
Konstantin Kolinko

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


Re: TCK Failures on WebSocket

Posted by Jean-Louis MONTEIRO <je...@gmail.com>.
Thanks. I'll look at how to treat those.

I have 2 more failures under
com.sun.ts.tests.websocket.ee.javax.websocket.session.WSClient
<https://tck.work/tomee/api/build/file/1617771682192/1342>
And 2 under
com.sun.ts.tests.websocket.spec.servercontainer.addendpoint.WSClient
<https://tck.work/tomee/api/build/file/1617771682192/1400>

But I'll investigate first and reach out if needed.

Le jeu. 8 avr. 2021 à 15:35, Mark Thomas <ma...@apache.org> a écrit :

> On 08/04/2021 14:10, Jean-Louis MONTEIRO wrote:
> > Hi,
> >
> > I am running WebSocket TCK on TomEE and I'm having some issues.
> > Wondering if I missed some configuration.
> >
> > Essentially the TCK is deploying an application with this class
> >
> https://github.com/eclipse-ee4j/jakartaee-tck/blob/master/src/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/OnMessageServerEndpoint.java
> >
> > It fails to deploy
>
> That is expected. From memory all the ...negdep... tests are expected to
> fail deployment.
>
> Mark
>
>
> >
> > Caused by: jakarta.websocket.DeploymentException: De multiples
> > paramètres de message sont présents sur la méthode [echo] de la classe
> >
> [com.sun.ts.tests.websocket.negdep.onmessage.srv.binarybytebufferint.OnMessageServerEndpoint]
> > qui a été annotée avec OnMessage
> >     at
> org.apache.tomcat.websocket.pojo.PojoMethodMapping$MessageHandlerInfo.<init>(PojoMethodMapping.java:543)
> >     at
> org.apache.tomcat.websocket.pojo.PojoMethodMapping.<init>(PojoMethodMapping.java:139)
> >     at
> org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:154)
> >     at
> org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:278)
> >     at org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:126)
> >
> >
> >  From the wiki, Tomcat is supposed to be passing the WebSocket TCK.
> > Do you have pointers to help?
> >
> > Thanks
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>

-- 
Jean-Louis

Re: TCK Failures on WebSocket

Posted by Mark Thomas <ma...@apache.org>.
On 08/04/2021 14:10, Jean-Louis MONTEIRO wrote:
> Hi,
> 
> I am running WebSocket TCK on TomEE and I'm having some issues.
> Wondering if I missed some configuration.
> 
> Essentially the TCK is deploying an application with this class
> https://github.com/eclipse-ee4j/jakartaee-tck/blob/master/src/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/OnMessageServerEndpoint.java
> 
> It fails to deploy

That is expected. From memory all the ...negdep... tests are expected to 
fail deployment.

Mark


> 
> Caused by: jakarta.websocket.DeploymentException: De multiples
> paramètres de message sont présents sur la méthode [echo] de la classe
> [com.sun.ts.tests.websocket.negdep.onmessage.srv.binarybytebufferint.OnMessageServerEndpoint]
> qui a été annotée avec OnMessage
>     at org.apache.tomcat.websocket.pojo.PojoMethodMapping$MessageHandlerInfo.<init>(PojoMethodMapping.java:543)
>     at org.apache.tomcat.websocket.pojo.PojoMethodMapping.<init>(PojoMethodMapping.java:139)
>     at org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:154)
>     at org.apache.tomcat.websocket.server.WsServerContainer.addEndpoint(WsServerContainer.java:278)
>     at org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:126)
> 
> 
>  From the wiki, Tomcat is supposed to be passing the WebSocket TCK.
> Do you have pointers to help?
> 
> Thanks
> 


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