2014-01-04 3 views
0

Я использую среду просмотра Birt в моем веб-приложении вместе с Mechanize и использовал log4j для входа в мое приложение. Все это работало нормально, но затем я использовал java mailing api в своем приложении, и я продолжаю получать это исключение: org.apache.commons.logging.LogConfigurationException: Неверная иерархия загрузчика классов. У вас есть более одной версии «org.apache.commons.logging.Log», которая не допускается.org.apache.commons.logging.LogConfigurationException: Неверная иерархия загрузчика классов

Я изначально использовал mail.jar, который был прекрасен, для другого требования в моем проекте я начал использовать mail.1.3.3.jar, и он начал выбрасывать это исключение. Я думаю, что есть некоторые конфликты в банке между Mechanize и последними java-почтовыми банками.

Мне нужно использовать либо почту.1.3.3.jar, либо java-mail-1.4.jar.

Прошу совета, как мне преодолеть это?

Спасибо.

+0

Кажется, у вас есть несколько версий 'commons-logging' в вашем пути к классам. – Henry

+0

Эта проблема встречается только на одном из серверов, который идентичен другим средам, и все другие среды работают отлично. –

+0

In мой опыт в том, что нет такой вещи, как «идентичная конфигурация сервера». Некоторые различия всегда ползут. Поддерживает ли сервер поддержку инструмента для проверки пути к классу, который используется для приложения? – Henry

ответ

0

Я был в состоянии избавиться от него.

На самом деле, в банке Mechanize (версия 0.11.1) содержится pom.xml, который я упомянул и получил просветленный о его использовании на баночках HttpClient. Я использовал баннеры HTTPClient версии 4.2.1 в своем веб-приложении, и теперь он работает.

Дело здесь отметить, заключается в следующем: pom.xml имеет зависимость:

<dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <version>4.0.1</version> 
    <dependency> 
    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpmime</artifactId> 
     <version>4.0.1</version> 
    <dependency> 
</dependencies> 

<profiles> 
    <profile> 
    <id>latestHttpClient</id> 
    <dependencies> 
     <dependency> 
      <groupId>org.apache.httpcomponents</groupId> 
      <artifactId>httpclient</artifactId> 
      <version>4.2.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.httpcomponents</groupId> 
      <artifactId>httpmime</artifactId> 
      <version>4.2.1</version> 
     </dependency> 
    </dependencies> 
    <profile> 
<profiles> 

Это, кажется, узким местом в настоящее время, так как на одной среде, старые версированное банки работают и на других условиях, новый из них. :(

Смежные вопросы