If the classes don't exist to be scanned then they cannot be discovered and
loaded at startup/init of the Web app that needs them.

You are left with manually adding the ServerEndpoint's using the techniques
described in JSR-356.

This must happen during the WebApp deploy/init phase (it is against the
spec to add endpoints after deploy/init during the execution of the WebApp).
Best approach is to create a ServletContainerInitializer
<https://docs.oracle.com/javaee/7/api/javax/servlet/ServletContainerInitializer.html>
that
obtains a reference to the javax.websocket.server.ServerContainer
<https://docs.oracle.com/javaee/7/api/javax/websocket/server/ServerContainer.html>
(see
javadoc on how), then use one of the two addEndpoint() methods.

Joakim Erdfelt / [email protected]


On Fri, May 3, 2019 at 8:17 AM Adam Retter <[email protected]>
wrote:

> Hi Joakim,
>
> Thanks for the quick reply, however I am not sure if I quite explained
> my need in enough detail...
>
> We need to do this after Jetty has already been configured and started.
>
> > The class MUST be a class accessible via a JAR or FileSystem (no dynamic
> classes or purely runtime classes supported).
> > This is because the only way we can scan for Annotations is via the ASM
> library.
>
> The class is in a Jar file which we have loaded using our custom
> classloader named org.exist.start.EXistClassLoader. I am not sure how
> Jetty would know about this class loader? Do we need to tell Jetty
> about it somehow?
>
> > If these classes are on the Server / System classpath, then the
> `org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern` context
> attribute can be modified (hint: it's a regex) to include the server jars
> (of filesystem paths) that have your classes that you are interested in.
> >
>
> The classes are NOT on the Server or the System classpath, they are
> loaded on-demand at runtime via our EXistClassLoader. So I don't think
> changing `ContainerIncludeJarPattern` will help here.
>
> Does that make more sense now?
>
> --
> Adam Retter
>
> skype: adam.retter
> tweet: adamretter
> http://www.adamretter.org.uk
> _______________________________________________
> jetty-users mailing list
> [email protected]
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://www.eclipse.org/mailman/listinfo/jetty-users
>
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://www.eclipse.org/mailman/listinfo/jetty-users

Reply via email to