0

Web アプリケーションでMechanizeとともに Birt ビューアー ランタイムを使用しており、アプリケーションへのログインに log4j を使用しています。すべて正常に動作していましたが、アプリケーションで Java メール API を使用したところ、次の例外が引き続き発生しました: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy. 「org.apache.commons.logging.Log」の複数のバージョンが表示されていますが、これは許可されていません。

私は当初、問題のないmail.jarを使用していましたが、プロジェクトの別の要件のために、mail.1.3.3.jarの使用を開始し、この例外をスローし始めました。Mechanize と最新の Java メール jar の間で jar の競合があると思います。

mail.1.3.3.jar または java-mail-1.4.jar のいずれかを使用する必要があります。

どうすればこれを克服できるかアドバイスしてください??

ありがとう。

4

1 に答える 1

0

私はそれを取り除くことができました。

実はMechanize(バージョン0.11.1)のjarにはpom.xmlが入っていて、これを参考にしてHttpClientのjarでの使い方を教わりました。Web アプリケーションでバージョン 4.2.1 の HTTPClient jar を使用しましたが、現在は機能しています。

ここで注意すべき点は、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>

ある環境では古いバージョンの jar が機能し、別の環境では新しいバージョンが機能しているため、これがボトルネックになっているようです。:(

于 2014-01-14T10:01:32.707 に答える