Я подключаюсь к очень старому приложению EJB2.1 от 2006 года с помощью jar-клиента. Я собрал приложение весенней загрузки 2, которое использует этот jar-клиент и вызывает его фасадные методы. Я испытываю очень странное поведение, когда один вызов метода клиента работает нормально, а другой не работает на java.io.StreamCorruptedException: invalid type code: 00
. Я обнаружил, что один работает, потому что он выполняется из контроллера (не напрямую), а второй - потому что он вызывается через сообщение JMS. Теперь вызов сообщения JMS выполняется (поток) с загрузчиком классов контекста sun.misc.Launcher$AppClassLoader
, когда MVC выполняется с TomcatEmbeddedWebappClassLoader
(у которого есть родительский элемент sun.misc.Launcher$AppClassLoader
). Поскольку это оболочка для очень старого клиента, я подумал, что могу просто поменять загрузчики классов в вызове JMS.
Но (ЭТО АКТУАЛЬНЫЙ ВОПРОС) Есть ли способ получить доступ к моему приложению TomcatEmbeddedWebappClassLoader
во время весенней инициализации контекста, чтобы я мог установить его и в своем вызове JMS?