Niki:

That is exactly what is required and what I have been looking for!  Perhaps
the problem, then, is that Tomee is based on Tomcat 7 something.  When
Tomee adopts Tomcat 8 the problem should be fixed it sounds like.  That is
fabulous news!! Thanks for letting me know.  I shall be impatiently
awaiting the day!!  Perhaps I shall experiment with dropping the openejb
jar into Tomcat 8 to see if it will work.

I'm running jdk8u5 at this time so that is not an issue.

Again, much appreciated.


On Sun, May 4, 2014 at 9:03 AM, Niki Dokovski <[email protected]> wrote:

> Hi
> here a small client side project [1]  I used before to put some load on
> the Web Socket implementation in Tomcat 8
> It uses https type of connection simply because I was interested in SSL
> handling at that point of time. Of course you can ignore it and take a look
> at ws.echo.client.run.ClientsRunner
>
> 1. The examples obtains reference to the container in static way
>  private static final WebSocketContainer container =
> ContainerProvider.getWebSocketContainer();
>
> 2. It uses programmatic approach for getting WebSocket Session
> container.connectToServer(ClientEndpoint.class,
> ClientEndpointConfig.Builder.create().build(),url)
>
> 3. adds a message handler
> session.addMessageHandler(new ClientEndpointMessageHandler(latch));
>
> 4. sends a text based web socket message
> session.getBasicRemote().sendText(message);
>
> 5. and closes the connection
> session.close(new CloseReason(CloseReason.CloseCodes.NORMAL_CLOSURE,"just
> close it"));
>
> As you can see the maven project uses web socket implementation from
> Tomcat to establish client connection using Java SE. Basically you need the
> jars from the maven dependencies for your client code to work.
>
> Your observation is correct, the Apache Tomcat implementation requires at
> least Java SE 7.
>
> Hope this helps
> Niki Dokovski | @nickytd
>
> [1] https://bitbucket.org/nickytd/websocket-echo-client
>
>
> On 04.05.2014, at 17:30, Romain Manni-Bucau <[email protected]> wrote:
>
> > well I think you are not that right.
> >
> > 1) client works perfectly in TomEE. Outside...well outside TomEE you
> > are outside so that's fine if it doesn't work
> > 2) you are right client side is needed outside a server...80% of the
> > case it is javascript which is fine
> >
> > You can ask Tomcat to export their client part in an importable jar
> > but websocket implementation of tomcat is optimized for embedded mode.
> > That said I'm +1 for it but there is no link with TomEE itself
> >
> >
> >
> > Romain Manni-Bucau
> > Twitter: @rmannibucau
> > Blog: http://rmannibucau.wordpress.com/
> > LinkedIn: http://fr.linkedin.com/in/rmannibucau
> > Github: https://github.com/rmannibucau
> >
> >
> > 2014-05-04 16:24 GMT+02:00 Chuck Davis <[email protected]>:
> >> Wtih all due respect, Romain, I have to take issue with your position.
> >> Andy just helped me learn how to connect JSE clients to the EJB
> container
> >> using the http protocol.  If EJB (Tomee/openEJB) is only for browser
> >> clients it's quite useless for any real work.  Without Swing/JavaFX
> client
> >> connectivity it will be consigned to such workloads as the social
> network.
> >> It's going to be a long time before any significant data input (i.e. the
> >> typical business workload) will be done with a browser interface.  It is
> >> essential that JSE clients be able to connect to/use EJB via Tomee via
> >> websockets.
> >>
> >> In a @ClientEndpoint
> >> WebsocketContainer container =
> ContainerProvider.getWebsocketContainer();
> >> must return a container so that the container can be used to get a
> session
> >> from the server.  Currently it throws an exception that there is no
> >> implementation class.  If that is not fixed soon Tomee/openEJB  will
> not be
> >> a welcoming project to those of us who write Java desktop applications.
> >>
> >> My $.02.
> >>
> >> CD
> >>
> >> P.S.  By the way, connecting to the EJB container using http to find the
> >> ejb seems to work nicely but it's no substitute for the advantages
> offered
> >> by websockets.
> >>
> >>
> >>
> >>
> >> On Sun, May 4, 2014 at 6:23 AM, Romain Manni-Bucau <
> [email protected]>wrote:
> >>
> >>> Well TomEE websocket implementation is to write clients from TomEE not
> >>> from JavaSE (where you don't have TomEE anymore).
> >>>
> >>> In TomEE clients work.
> >>>
> >>> So you need to provide us a maven project with a test showing the
> >>> issue you have.
> >>>
> >>>
> >>> Romain Manni-Bucau
> >>> Twitter: @rmannibucau
> >>> Blog: http://rmannibucau.wordpress.com/
> >>> LinkedIn: http://fr.linkedin.com/in/rmannibucau
> >>> Github: https://github.com/rmannibucau
> >>>
> >>>
> >>> 2014-05-04 15:20 GMT+02:00 Chuck Davis <[email protected]>:
> >>>> Niki, I'm not sure what "http proxy setup for client connection" means
> >>> but
> >>>> it sounds suspiciously like the very piece I'm looking for --
> connecting
> >>> a
> >>>> Java client to the server with websocket.  Is that what you are
> saying?
> >>>> The piece WebsocketContainer container =
> >>>> ContainerProvider.getWebsocketContainer() will not currently work?
> >>>> Currently it returns an exception that there is no implementation
> class.
> >>>>
> >>>> If that is so, then my contention stands that Tomee needs a better
> >>>> implementation to allow Java clients to connect.
> >>>>
> >>>> Thanks.
> >>>>
> >>>> CD
> >>>>
> >>>>
> >>>> On Sat, May 3, 2014 at 8:24 AM, Niki Dokovski <[email protected]>
> wrote:
> >>>>
> >>>>> The only limitation in Apache Tomcat implementation of Java API for
> Web
> >>>>> Socket (JSR 356) is the missing http proxy setup for client
> connections.
> >>>>> This has already bean discussed in Tomcat dev lists and so far this
> is
> >>> left
> >>>>> either for future spec definitions or users demand. The rest of the
> >>>>> implementation is fully functional within the JSR 356 definitions.
> >>>>>
> >>>>> Best Regards
> >>>>> Niki
> >>>>>
> >>>>>
> >>>>> Niki Dokovski | @nickytd
> >>>>>
> >>>>>
> >>>
>
>

Reply via email to