
    Новые сообщения [новые:0]
  
  Дайджест 
  
  Горячие темы
    Избранное [новые:0]
  
Форумы 
 
Пользователи 
Статистика 
Статистика нагрузки 
    Мод. лог 
  
  Поиск 
  | 
| 
 26.08.2020, 17:50 
 | 
|||
|---|---|---|---|
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  Всем привет! Tomcat 8 + 2 Web Spring boot приложения. App1 пишет объект Config в контекст. App2 читает объект Config из контекста App1. Библиотека c реализацией класса Config лежит в /shared/lib. пишем в app1: Код: java 1. читаем в app2: Код: java 1. 2. 3. Получаем ошибку: авторjava.lang.ClassCastException: Config cannot be cast to Config ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 26.08.2020, 18:00 
 | 
|||
|---|---|---|---|
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  spring-boot-devtools удоли ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 26.08.2020, 18:03 
 | 
|||
|---|---|---|---|
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  dakeiras spring-boot-devtools удоли Этой нет: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 26.08.2020, 18:26 
 | 
|||
|---|---|---|---|
  
  | 
|||
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  Molasar Библиотека c реализацией класса Config лежит в /shared/lib. Класс Config только там? Или еще в war-ах? Из war-ок этот класс надо убрать. P.S. что вообще пытаешься сделать? - выглядит все очень не очень ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 26.08.2020, 19:00 
 | 
|||
|---|---|---|---|
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  Одинаковые классы загруженные разными класслоадерами считаются разными. У каждого приложения свой класслоадер, так что вообще ничего удивительного ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 26.08.2020, 23:14 
 | 
|||
|---|---|---|---|
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  забыл ник Одинаковые классы загруженные разными класслоадерами считаются разными. У каждого приложения свой класслоадер, так что вообще ничего удивительного а как тогда передавать объекты через кросс контекст? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 26.08.2020, 23:50 
 | 
|||
|---|---|---|---|
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  Molasar забыл ник Одинаковые классы загруженные разными класслоадерами считаются разными. У каждого приложения свой класслоадер, так что вообще ничего удивительного а как тогда передавать объекты через кросс контекст? А смысл сего действия? Но если говорить об интеграции приложений, то есть 4 основных способа 1) файловая система 2) БД 3) Очередь сообщений 4) remote call ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 27.08.2020, 07:38 
 | 
|||
|---|---|---|---|
  
  | 
|||
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  забыл ник Molasar пропущено... а как тогда передавать объекты через кросс контекст? А смысл сего действия? Но если говорить об интеграции приложений, то есть 4 основных способа 1) файловая система 2) БД 3) Очередь сообщений 4) remote call 5) REST)) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 27.08.2020, 08:15 
 | 
|||
|---|---|---|---|
  
  | 
|||
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  Molasar Получаем ошибку: авторjava.lang.ClassCastException: Config cannot be cast to Config Не делай странного, не получишь странного. Если нужен доступ к контексту/бинам между различными приложениями. То я слышал о такой возможности только для серверов приложений (WebLogic, WebSphere, jBoss, Glassfish), а никак не для серверов сервлетов (Tomcat). Можно конечно попробовать сделать через OSGI, но там "своя атмосфера". А так. Если нужно иметь контекст двух приложений... То это должен быть один контекст, для одного приложения! ;-) Смотреть в сторону создание собственных автоконфигураций <:o) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 27.08.2020, 09:45 
 | 
|||
|---|---|---|---|
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  забыл ник Одинаковые классы загруженные разными класслоадерами считаются разными. У каждого приложения свой класслоадер, так что вообще ничего удивительного Я пробовал использовать разные библиотеки с общими классами. И такую проверку: Код: java 1. 2. 3. 4. 5. 6. 7. 8. В некоторых случаях класслоадеры одинаковые: авторObject classloader: java.net.URLClassLoader@4f8cb7b Target class classloader: java.net.URLClassLoader@4f8cb7b Там где разные такой вывод: авторObject classloader: ParallelWebappClassLoader context: ccproducer delegate: false ----------> Parent Classloader: java.net.URLClassLoader@4f8cb7b Target class classloader: ParallelWebappClassLoader context: ccconsumer delegate: false ----------> Parent Classloader: java.net.URLClassLoader@4f8cb7b Different classloaders detected! ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 27.08.2020, 09:51 
 | 
|||
|---|---|---|---|
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  SpringMan Molasar Библиотека c реализацией класса Config лежит в /shared/lib. Класс Config только там? Или еще в war-ах? Из war-ок этот класс надо убрать. P.S. что вообще пытаешься сделать? - выглядит все очень не очень Ваше предположение о наличие где-то еще одной библиотеки в классом Config похоже на правду. Проверю. Кросс контекст нужен для использования общих объектов приложениями. Например, в моем случае app1 помещает объект, который содержит информацию о состоянии app1. App2 постоянно считывает состояние этого объекта. Я знаю про Очереди, БД, FS, Rest и Soap. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 27.08.2020, 10:08 
 | 
|||
|---|---|---|---|
  
  | 
|||
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  Molasar, >Я знаю про Очереди, БД, FS, Rest и Soap. Если знаешь, значит фигню пишешь. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 27.08.2020, 10:14 
 | 
|||
|---|---|---|---|
  
  | 
|||
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  Molasar, > Например, в моем случае app1 помещает объект, А то что повальное количество приложений общаются между собой через порт 127.0.0.1:123456. Казалось бы причем тут сеть, если они меж собой общаются. Но спринг прогерам обязательно надо через спринг))) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 27.08.2020, 11:09 
 | 
|||
|---|---|---|---|
  
  | 
|||
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  mad_nazgul серверов сервлетов (Tomcat). То это должен быть один контекст, для одного приложения! ;-)Можно п(р)очитать про загрузчики классов, обнаружить "общий для экземпляра" и положить туда классы, общие для обоих приложений. P.S. Да, это не защитит от "вмешательства" третьего приложения, развёрнутого в том же экземпляре. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 27.08.2020, 13:28 
 | 
|||
|---|---|---|---|
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  В моём случае ошибка возникала из-за присутсвия дубликата общей библиотеки в одном из war файлов. Необходимо четко отслеживать такие моменты и исключать общие библиотеки через <scope>provided</scope> в POM файле MAVEN проектов. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 27.08.2020, 14:38 
 | 
|||
|---|---|---|---|
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  В твоем случае ошибка возникала из-за отсутствия правильной архитектуры, приводящая к говнокоду.  Хозяин-барин ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 28.08.2020, 06:35 
 | 
|||
|---|---|---|---|
  
  | 
|||
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  Basil A. Sidorov Можно п(р)очитать про загрузчики классов, обнаружить "общий для экземпляра" и положить туда классы, общие для обоих приложений. На сколько я понял ТС не классы нужны, а контекст, созданный соответствующими конфигурационными классами. Как только он создаст контекст, через кастомный класслоадер, второй вопрос будет, почему у него не работает контекст. Типа я вызываю бин, в одном приложении, а в другом ничего не меняется. Тут либо переход на сервер приложения и JavaEE. Либо поднимать приложение в одном контексте. Либо не парить мозги и делать какой-нибудь "типа RPC". ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 28.08.2020, 07:33 
 | 
|||
|---|---|---|---|
  
  | 
|||
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  mad_nazgul, Конечно контекст. Мы же var v = new Xxxxx() счас практически не пишем)) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 28.08.2020, 07:50 
 | 
|||
|---|---|---|---|
  
  | 
|||
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  mad_nazgul На сколько я понял ТС не классы нужны, а контекст, созданный соответствующими конфигурационными классами. Если хочется дёргать общие методы из разных контекстов, то эти классы должны грузиться общим загрузчиком. Для сервлет-контейнера это общий загрузчик экземпляра (${catalina.base}/lib/ для КотярыТома). Простая же логика. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 01.09.2020, 14:10 
 | 
|||
|---|---|---|---|
  
  | 
|||
Tomcat cross context: ClassCastException: class cannot be cast to class  | 
|||
| 
 #18+ 
  
    
  Basil A. Sidorov mad_nazgul На сколько я понял ТС не классы нужны, а контекст, созданный соответствующими конфигурационными классами. Если хочется дёргать общие методы из разных контекстов, то эти классы должны грузиться общим загрузчиком. Для сервлет-контейнера это общий загрузчик экземпляра (${catalina.base}/lib/ для КотярыТома). Простая же логика. Класс доступен, а контекст нет ;-) Грубо говоря класслоадер загружает классы, а объекты создаются в контексте. ТС нужен не класс, а контекст. Т.к. все созданные бины. Если все таки пытаться создавать два приложения, то либо нужно использовать JavaEE/JakartaEE, либо OSGI. В любом случае это будет тот ещё геморрой. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
  | 

start [/forum/topic.php?fid=59&tablet=1&tid=2120693]:  | 
    0ms | 
get settings:  | 
    11ms | 
get forum list:  | 
    12ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    53ms | 
get topic data:  | 
    12ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    58ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 12ms | 
| total: | 171ms | 

    | 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.