Как установить порядок банок в WebLogic?

В своем приложении я использую Joda-Time 2.0, но в своем WebLogic по пути находится библиотека Joda-Time 1.2.

Как я могу изменить порядок и указать WebLogic использовать мою библиотеку? Теперь он использует собственную библиотеку, а не мою. Я только что добавил зависимость проекта Maven к Joda-Time 2.0.


person hudi    schedule 25.08.2011    source источник


Ответы (2)


Есть несколько способов сделать это.

  1. Измените свой startWeblogic.cmd(sh) в папке bin для вашего домена, найдите параметр пути к классам и добавьте новый joda перед любыми другими банками WebLogic.
  2. как было сказано выше, вы можете изменить свой weblogic.xml, если приложение является веб-приложением и предпочло любую библиотеку, которая входит в войну.
  3. Если вы используете корпоративное приложение, вы можете установить следующие параметры в файле weblogic-application.xml:

    <prefer-application-packages>
        <package-name>org.apache.*</package-name>
        <package-name>antlr.*</package-name>
    </prefer-application-packages>
    

И установите там имя вашего пакета для joda.

Обратите внимание, что первый вариант может привести к странному поведению WebLogic.

Обратите внимание, что по какой-то причине я не могу заставить код работать с XML.

person Nuno Furtado    schedule 25.08.2011
comment
спасибо за другое решение, но первое более элегантное и работает, но все равно спасибо - person hudi; 25.08.2011
comment
обратите внимание, что это не имеет ничего общего с элегантностью. оба варианта 2 и 3 могут понадобиться в зависимости от специфики вашего проекта. JoseK работает для веб-контейнера, но он не работает, если он вам нужен в контейнере ejb. Но если это работает для вас, это решение, которое вы искали - person Nuno Furtado; 25.08.2011
comment
+1 к этому; вариант 2 включает сам другой ответ, а вариант 3 — мой предпочтительный способ, поскольку он позволяет указать, какие библиотеки загружаются на уровне приложения. Использование Prefer-web-inf-classes — это подход «все или ничего», который приведет к большому количеству дублирований при загрузке библиотек, которые в противном случае были бы общими на уровне сервера. - person CashIsClay; 25.08.2011
comment
да, вы правы, когда я установил true, чтобы предпочесть весь пакет, было еще одно исключение, поэтому я использовал только время joda, и все работает нормально, спасибо большое - person hudi; 26.08.2011
comment
Вариант 3 Должен находиться внутри этого тега ‹wls:container-descriptor›, как указано в ссылке docs.oracle.com/cd/E24329_01/web.1211/e21049/ - person André Luís Tomaz Dionisio; 06.02.2020

Поскольку ваш класс присутствует в вашей войне, WEB-INF/lib,

можете ли вы попробовать использовать настройку weblogic.xml, чтобы заставить класс WEB-INF/lib загружаться в предпочтение, чем в server/lib с

<container-descriptor>     
<prefer-web-inf-classes>true</prefer-web-inf-classes>   
</container-descriptor> 
person JoseK    schedule 25.08.2011