2015-03-03 3 views
0

Работая над существующим приложением, он работает в Weblogic как массивный файл уха.Tricky Classpath issue

Существует собственный код, написанный моей организацией, а также код, написанный поставщиком, который работает на одном пути к классам при запуске weblogic.

В некоторых наших пользовательских кодах используется весна 1.2, в последней версии кода поставщиков используется spring3. Поэтому мы не можем заставить ухо полностью работать, если мы не сможем получить каждый компонент весенней версии, в которой он нуждается, чтобы функционировать. Но поскольку они оба используют путь к классам, который запускается в weblogic, либо spring1.2, либо spring 3.0 будут сначала в зависимости от порядка в пути к классам.

Я застрял? Что-то пропало? Мне никогда не приходилось иметь дело с classpaths на этом уровне.

Благодаря

ответ

1

загрузчиков классов используют модель делегирования при загрузке класса. Сначала реализация classloader проверяет свой кеш, чтобы узнать, загружен ли уже запрошенный класс. Эта проверка класса повышает производительность, так как используется его кешированная копия памяти вместо повторной загрузки класса с диска. Если класс не найден в его кеше, текущий загрузчик классов запрашивает у его родителя класс. Только если родитель не может загрузить класс, загрузчик классов пытается загрузить класс. Если класс существует в родительском и дочернем загрузчиках классов, родительская версия загружается. Эта модель делегирования используется, чтобы избежать загрузки нескольких копий одной и той же формы. Несколько экземпляров одного класса могут привести к исключению ClassCastException.

Подумайте настройки следующее weblogic.xml может помочь

ПРЕДПОЧИТАЛИ-WEB-INF-классы Элемент

weblogic.xml веб дескриптор развертывания приложения содержит предпочитать-Интернет -inf-classes элемент (подэлемент элемента). По умолчанию этот элемент имеет значение False. Установка этого элемента в True приводит к переопределению модели делегирования класса загрузчика, чтобы определения классов из веб-приложения загружались в предпочтениях определения классов в загрузчиках классов более высокого уровня. Это позволяет веб-приложению использовать собственную версию стороннего класса, который также может быть частью WebLogic Server. См. «Элементы дескриптора развертывания weblogic.xml». *

При использовании этой функции вы должны быть осторожны, чтобы не смешивать экземпляры, созданные из определения класса веб-приложения, с выпусками, созданными из определения сервера. Если такие экземпляры смешаны, возникает ClassCastException.

Обратитесь к URL ниже

Oracle Weblogic Server

+0

именно то, что мне нужно, работал отлично, спасибо –