Портирование приложений Java EE - Oracle 10g AS на сервер Oracle 11g Weblogic - PullRequest
0 голосов
/ 25 августа 2011

Я портирую приложение Java EE с сервера приложений Oracle 10g на сервер Oracle 11g Weblogic.

У меня есть common.jar, который содержит классы, связанные с Connection, и присутствует внутри war / web-inf / lib. Приложение разворачивается как EAR, и ejbs также ссылаются на классы внутри common.jar для получения соединения с БД. EJB не может получить ссылку на эти классы во время выполнения. Я скопировал файл common.jar в каталог APP-INF / lib. В этом случае JSP не может получить ссылку на связанные с Connection классы. У меня есть JSP, который имеет встроенный SQL-код. Это приложение было разработано далеко назад, и теперь у вас нет знаний об изменении кода.

Как я могу решить эту проблему? Как ejb может получить ссылку на классы, расположенные внутри war / web-inf / lib.

1 Ответ

0 голосов
/ 25 августа 2011

Вы не можете заставить EJB заглянуть в WAR WEB-INF / lib для классов.Это идет вразрез с Classloader Hierarchy для Weblogic.

Размещение общего jar-файла в APP-INF / lib - правильный путь.

WebLogic Server предоставляетрасположение в файле EAR, где вы можете хранить общие служебные классы.Поместите служебные JAR-файлы в каталог APP-INF / lib, а отдельные классы - в каталог APP-INF / classes.(Не помещайте JAR-файлы в каталог / classes или классы в каталог / lib.) Эти классы загружаются в корневой загрузчик классов для приложения.

Можете ли вы также публиковать ошибки, которые получают JSP приони не могут загрузить это?Это ClassNotFoundException или NoClassDefFoundError или что-то еще?

См. Также Рекомендации по использованию общих библиотек Java EE

...