この問題に一致する可能性のあるものがいくつか見つかりましたが、うまくいくものはありません。
Apache Camel を使用して、ファイルを電子メールの添付ファイルとして配信しています。次のmavenの目標を使用して完全に機能します。
桟橋:実行 桟橋:実行-爆発 桟橋:実行-戦争
Java 1.6 を使用しています。私の展開コンテナーは tomcat6 です。tomcat6 と tomcat7 では、次の例外が発生します。
org.springframework.mail.MailSendException: 失敗したメッセージ: javax.mail.MessagingException: 開始境界がありません。メッセージ例外の詳細 (1) は次のとおりです: 失敗したメッセージ 1: javax.mail.MessagingException: javax.mail.internet.MimeMultipart.parsebm(MimeMultipart.java:882) で開始境界がありません
Web 上のアドバイスは、これがクラス ローダーの問題であることを示唆しています。activation-1.1.jar または mail-1.4.4.jar ファイルが見つからないか、mail-1.4.4.jar 内の mailcap ファイルが見つからないかのいずれかです。
これらのjarファイルをtomcat/libに入れてみました。mailcap を jar ファイルから爆発した戦争の META-INF ディレクトリにコピーしようとしました。これらのどちらも違いはありません。
バージョン:
Windows: Apache Tomcat/7.0.5 JDK 1.6.0_27-b07 Apache Camel 2.8.0-fuse-00-08
Linux - ubuntu 10.04 LTS に付属するバージョン - これらは後で確認して追加します。
これは私のキャメル ルートの簡易版です。
<route id="uploadFileForm">
<from uri="jetty:http://0.0.0.0:9095/premier"/>
<to uri="velocity:form.html"/>
</route>
<route id="uploadFile">
<from uri="jetty:http://0.0.0.0:9095/fup"/>
<to uri="log:mail?showBody=true&showHeaders=true"/>
<to uri="smtp://localhost"/>
<setHeader headerName="content-type"><constant>text/plain</constant></setHeader>
<setBody><constant>Message Sent</constant></setBody>
</route>
これはログが示すものです:
[4 - seda://mail-ws-audio-files] メール INFO Exchange[ExchangePattern:InOut, Headers:{Connection=Keep-Alive, CamelHttpServletRequest=org.eclipse.jetty.servlets.MultiPartFilter$Wrapper@bb32c5, upfile= D:downloads!37SQFTS.pdf, CamelHttpPath=/fup, subject=BBC Premier League Update - Edition 1, CamelHttpQuery=null, CamelHttpServletResponse=HTTP/1.1 200 、UntilMessage=until 10:30 GMT (月~金のみ)、Host=localhost:9095、User-Agent=Mozilla/4.0 (互換性あり; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E), Accept-Encoding=gzip, deflate, bulletin_type=am, to=julian.cable@ yahoo.com、cc=admin@localhost、breadcrumbId=ID-B1-L0N336601-58958-1335935026761-0-2、CamelHttpUrl=http://localhost:9095/fup、Content-Length=24896、Referer=http:// localhost:9095/premier, from=jfbcable@gmail.com, Accept=image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel、application/vnd.ms-powerpoint、application/msword、*/*、Accept-Language=en-GB、Content-Type=multipart/form-data; 境界= ----------------------------7dc3a8371906f6、 私たちのファイルの最新版を添付してください。
最小限のMavenプロジェクトの例はここにあり、戦争はここにあります。プロジェクトを Eclipse または
mvn jetty:run
次に、 http://localhost:9095/premierのフォームを使用します
「サーバーに接続できません」という例外が発生します。しかし、war を tomcat にデプロイすると、不足している開始境界の例外が発生します。applicationContext.xml を編集して* * を有効な値に置き換えると、実際に電子メールが送信されます。
何か案は?