Jersey 2.0 を使用して REST 応答を生成しています。JSON テキストとオクテット ストリーム データ (PDF) を返す次のメソッドがあります。
@GET
@Produces("application/json", "multipart/mixed; boundary=Test")
public Response getInfo((@Context HttpHeaders header, @Context HttpServletResponse respo, @Context HttpServletRequest req) {
// Code to Create JSON (variable json below)
// Code to Fetch PDF document (variable os is ByteArrayOutputStream)
// create bodyparts and return Response
MimeMultipart multiPart = new MimeMultipart();
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setContent(os.toByteArray(), MediaType.APPLICATION_OCTET_STREAM);
MimeBodyPart mbp2 = new MimeBodyPart();
mbp2.setContent(json, MediaType.APPLICATION_JSON);
multiPart.addBodyPart(mbp2);
multiPart.addBodyPart(mbp1);
return Response.ok(multiPart, "multipart/mixed;boundary=Test").build();
}
何が起こっているのかというと、指定した「境界」なしで次の出力が得られます。
------=_Part_0_195280885.1377005531310
{"ステータス":"OK","インデックス":1}
------=_Part_0_195280885.1377005531310
BLA bla bla bla.... PDF バージョン 1.4 .... adsas da sf sgf sdg startxref 42417 %%EOF
------=_Part_0_195280885.1377005531310--
Boundary は --Test であってはなりませんか?
ここで何か不足していますか?