2017-06-24 22 views
0

配備されたシステムから電子メールが送信されるときに、次のエラーが発生します。ClassNotFoundException com.sun.mail.util.SharedByteArrayInputStream

Caused by: java.lang.NoClassDefFoundError: com/sun/mail/util/SharedByteArrayInputStream 
.... 
.... 
Caused by: java.lang.ClassNotFoundException: com.sun.mail.util.SharedByteArrayInputStream 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass 

私が使用しています:

<dependency> 
    <groupId>com.sun.mail</groupId> 
    <artifactId>javax.mail</artifactId> 
    <version>1.5.1</version> 
</dependency> 

これは昨年のために働いてきたし、今、突然それがこの例外をスローしています。 javax.mailなどのバージョンを変更しました

javax.mail:mail:jar:1.5.0を依存関係に追加しようとしましたが、コンパイル時にjarが不正であるとのエラーが表示されました。 Mavenは次のエラーを与える:

import com.sun.mail.util.*; 
import javax.mail.util.SharedByteArrayInputStream; 

だから、MimeMessageを作成するときに、それがあるという点で、私はこのエラーを取得することを奇妙に思える:私には奇妙に思える何Please use the correct artifact for JavaMail. You should be using com.sun.mail:javax.mail... & Found Banned Dependency: javax.mail:mail:jar:1.5.0

javax.mail.internet.MimeMessageには、以下の輸入を持っているということですjavax.mail.util.SharedByteArrayInputStreamの代わりにcom.sun.mail.util.SharedByteArrayInputStreamを取得しようとしています。

私は同じ質問が掲載されていることを知っていますが、回答は常に私がすでに使用しているjavax.mail.jarを使用するように思われます。

+1

Webアプリケーションにjavax.mail.jarがパッケージ化されていますか?あなたのクラスパスのどこかに、おそらくあなたのサーバのlibディレクトリのどこかに、javax.mailクラスを持つ別のjarファイルがありますか? –

+0

@BillShannonです。他のライブラリが探しているもの'' 'javax.mail.util''の代わりに' 'com.sun.mail.util'''のバージョンを探しているということには何か手掛かりはありますか? –

+0

私はtomcatのインスタンスを調べました。私が見つけた唯一のメールジャーは '' 'javax.mail-1.5.1.jar''と' 'bcmail-jdk15on-1.50.jar''でした。 –

答えて

1

あなたがどこかに自分のクラスパス上のjavax.mailクラスの非常に古いバージョンを持っているようですね。どこかにj2ee.jarやjavaee.jarがないのは確かですか? javax.mailクラスのすべてのjarファイルを調べます。

0

これを解決するには、mail.jarも含めて、JavaEE SDKフォルダまたはJavaMail APIの公式ページから入手する必要があります。

また、JavaMail API経由でメールを送信するには、javaee.jarとmail.jarの両方のライブラリをインクルードする必要があります。

http://repo2.maven.org/maven2/javax/mail/mail/1.4.1/mail-1.4.1.jar

http://www.oracle.com/technetwork/java/javamail/index.html

+0

これを( '' 'javax.mail/mail/1.5.0''')含めようとすると、Mavenは次のエラーを出します:' '' JavaMailに正しいアーティファクトを使用してください。 com.sun.mailを使用する必要があります:javax.mail ... '' '&' ''禁止依存関係が見つかりました:javax.mail:mail:jar:1.5.0''' –

+1

javaee.jarは決して含まれてはいけませんあなたのランタイム;これはコンパイルを目的としたものです。 –