Как получить доступ к TomcatEmbeddedWebappClassLoader при весенней загрузке - PullRequest
1 голос
/ 25 марта 2020

Я подключаюсь к очень старому приложению 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?

...