2012-01-19 6 views
1

OSGiを使用していて、javax.mailで電子メールを送信しています。javax.mailでOSGiを実行しているときにJavaがUnsupportedDataTypeExceptionをスローする

私はそれを実行すると、それは次のエラーを示しています。誰かがこれはJDKの問題が原因であることを主張するウェブフォーラムで

javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed;

を。

ここで問題は何ですか?

+0

Require-Bundle: com.springsource.javax.mail;bundle-version="1.4.1"

  • は、ソースに追加。 osgiフレームワークで間違っていた。私たちは、eclipse equinox.thanks – snow8261

  • +0

    osgiを使用し、javax.mailで電子メールを送信しています。おそらく、実行しているバージョンを明記する必要があります。 –

    +0

    私は状態のバージョンを試しましたが、それは私のためには動作しません。 – snow8261

    答えて

    3

    これはJavaMail 1.4.4で修正されている可能性があります(春のOSGiリポジトリからartefactsも試してみてください)。 javax.activiationこのhttp://thecarlhall.wordpress.com/2009/10/27/javamail-in-osgi/

    が、私は、前にそれを、これを解決する方法を覚えていないことができます参照してください。META-INF /メールキャップに

    をのjavax.mailで指定されたコンテンツ・ハンドラを見ることができないためです

    org.osgi.framework.system.packages.extraにjavamail jarファイルを追加して、org.osgi.framework.system.packages.extraにエクスポートを追加するような、ちょっとしたハックでした。

    +0

    リンクありがとうございます。 – snow8261

    +0

    私はそれがあまりにも複雑であることが分かった。私は別の方法でそれを行うでしょう。ちょうどosgi bundle.itに電子メール機能を入れないのは、osgiでjavamailを使うときの悪夢のようなものです。 – snow8261

    0

    私はこの問題を抱えていましたが、ソリューション:

    1. MANIFEST.MFに追加:私は、通常のtest.itを使用してokですとき

    Thread.currentThread().setContextClassLoader(getClass().getClassLoader());

    MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap();mc.addMailcap("multipart/*;;x-java-content-handler=com.sun.mail.handlers.multipart_mixed;x-java-fallback-entry=true");

    CommandMap.setDefaultCommandMap(mc);

    関連する問題