質問

また他のアプリケーションに対する送りEDIFACTメッセージです。のメール送受信は問題なしを受け、EDIFACTメッセージを送信する別のアプリケーションを作成します。

EDIFACTは標準の送事業の営業情報(請求書など)

のメールはこの構造:

Message-ID: 20101110081058.CLOCKT..SRC.SRCNUMBER.edi01@SENDER.DOMAIN.com
From: EDI-berichten <edi01@SENDER.DOMAIN.com>
Date: Wed, 10 Nov 2010 08:10:57
To: <ekt@DOMAIN.nl>
Subject: INVOIC;SRC
MIME-VERSION: 1.0
Content-type: application/EDIFACT;
  name=message.edi
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="message.edi"
X-OriginalArrivalTime: 10 Nov 2010 07:13:29.0843 (UTC) FILETIME=[C6CCD430:01CB80A6]
X-Virus-Scanned: clamav-milter 0.96.4 at pilot
X-Virus-Status: Clean

能することができますのEDIFACT仕様: http://www.faqs.org/rfcs/rfc1767.html

正常に送信す参加者とボランティアスタッ作成MimeMultipartに追加テキストと添付部品です。のedifactメッセージにおいて区分掲記しておりましたメッセージでは、別紙をご参照ください。-

私は追加の付着部のコンテンツ、このように:

MimeBodyPart attachBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(fileAttach);
attachBodyPart.setDataHandler(new DataHandler(source));
attachBodyPart.setFileName(source.getName());
msg.setContent(attachBodyPart, "application/EDIFACT");

取得しこのエラー:

javax.mail.MessagingException: IOException while sending message;
  nested exception is:
    javax.activation.UnsupportedDataTypeException: no object DCH for MIME type application/EDIFACT
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:930)

など---。最後にこの:

Caused by: javax.activation.UnsupportedDataTypeException: no object DCH for MIME type application/EDIFACT
    at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:877)
    at javax.activation.DataHandler.writeTo(DataHandler.java:302)
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1383)
    at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1743)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:888)

いい経験で、メッセージを表示する方法については、メッセージを作成しハンドラタイプのアプリケーション/EDIFACT?

を受けEDIFACTメッセージの添付したものの問題ではないデフォルトにならないよう、使用:

mp = (Multipart)message.getContent();
BodyPart part = mp.getBodyPart(i);
part.getInputStream()

利用いただこう(この情報のですが、溶液):

SharedByteArrayInputStream sbaIs = (SharedByteArrayInputStream)message.getContent()

**編集18mar2013**

最小限の対応を私が質問したことの理由ではありませmyselveのイメージして作成してみましたオープンソースで遂行さ.ってしまった練があります。

いて:利用くださいフィードバックす: https://github.com/iamit/IAmEdifact

役に立ちましたか?

解決

昨日も終わっている問題解決にdescibedます。を見つけられなかった適切な回答anyweherのインターネット。でページを作成しましたスペースにはどのようなこと(ドキュメンテーションが完全に終了することもできますがすぐに)

サイト: https://sites.google.com/site/edifact4java/home

短らなければいけないということこと:

  1. 追加DHC(DataContentHandler) のMailcapCommandMap
  2. の作成 DataContentHandlerのmimeタイプ application/EDIFACT
  3. の作成 MimePartカスタマイズされた application/EDIFACT
  4. の作成 DataHandler、edifactファイルまたは メッセージ
  5. メッセージを作成し インタフェースedifactメッセージ

すべてのこと.....で作品!!

長いパズルその努力を文書でサイトです。もし誰かが、一日できない人の利益です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top