Почему родитель WebappClassLoader возвращает StandardClassLoader, хотя в реализации WebappClassLoader он расширяется от URLClassLoader

У меня есть отдельное Java-приложение, которое использует Terracotta для обмена POJO. Это приложение использует пользовательский загрузчик классов, который создает URLClassLoader, Но когда мы пытаемся извлечь значение общего объекта из памяти, это дает ClassCastException для того же POJO. После отладки я обнаружил, что загрузка ClassJoader POJO WebappClassLoader чей загрузчик родительского класса StandardClassLoader,

WebappClassLoader
  delegate: false
  repositories:
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@

Я предполагаю, что если WebappClassLoader относится к URLClassLoader так как это родитель, то может избежать этого ClassCastException (хотя я не уверен, что) Это происходит только тогда, когда приложение развернуто на сервере Tomcat. В случае Tomcat, встроенного в Eclipse, все работает нормально. Там, в Eclipse, когда я пытаюсь напечатать ClassLoader, я получаю ссылку как AppClassLoader, скорее, чем WebappClassLoader,

Любая помощь будет высоко оценен.

0 ответов

Другие вопросы по тегам