@@ -115,11 +115,16 @@ public void onMessage(Object partialMessage, boolean last) {
115115 params .put (method .getMessageType (), partialMessage );
116116 params .put (boolean .class , last );
117117 final Object result ;
118+ final ClassLoader oldCL = Thread .currentThread ().getContextClassLoader ();
118119 try {
119- result = method .invoke (instance .getInstance (), params );
120+ Object invokeTarget = instance .getInstance ();
121+ Thread .currentThread ().setContextClassLoader (invokeTarget .getClass ().getClassLoader ());
122+ result = method .invoke (invokeTarget , params );
120123 } catch (Throwable e ) {
121124 AnnotatedEndpoint .this .onError (session , e );
122125 return ;
126+ } finally {
127+ Thread .currentThread ().setContextClassLoader (oldCL );
123128 }
124129 sendResult (result , session );
125130 }
@@ -138,11 +143,16 @@ public void onMessage(Object partialMessage) {
138143 params .put (Map .class , session .getPathParameters ());
139144 params .put (method .getMessageType (), partialMessage );
140145 final Object result ;
146+ final ClassLoader oldCL = Thread .currentThread ().getContextClassLoader ();
141147 try {
142- result = method .invoke (instance .getInstance (), params );
148+ Object invokeTarget = instance .getInstance ();
149+ Thread .currentThread ().setContextClassLoader (invokeTarget .getClass ().getClassLoader ());
150+ result = method .invoke (invokeTarget , params );
143151 } catch (Exception e ) {
144152 AnnotatedEndpoint .this .onError (session , e );
145153 return ;
154+ } finally {
155+ Thread .currentThread ().setContextClassLoader (oldCL );
146156 }
147157 sendResult (result , session );
148158 }
0 commit comments