Почему родитель 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
,
Любая помощь будет высоко оценен.