は、おそらく今では答えを見つけましたが、他の誰のための鍵は、サービスプロキシがjavax.xml.ws.Binding
にキャストすることができ、その後、あなたがorg.apache.cxf.message.Message.ATTACHMENTS
キーを経由してResponseContext
(マップ)や添付ファイルを取得することができます:
import javax.activation.DataHandler;
import javax.xml.ws.BindingProvider;
import org.apache.cxf.message.Attachment;
import org.apache.cxf.message.Message;
import org.apache.commons.io.IOUtils;
...
Collection<Attachment> attachments = (Collection<Attachment>)
((BindingProvider)yourServiceProxy).getResponseContext()
.get(Message.ATTACHMENTS);
for (Attachment attachment : attachments) {
// ID is in attachment.getId();
// Data is in attachment.getDataHandler();
// Eg:
DataHandler data = attachment.getDataHandler();
InputStream is = data.getInputStream();
File dataFile = new File(data.getName());
System.out.println("Writing data to:\n\t" +
dataFile.toString());
FileOutputStream fos = new FileOutputStream(dataFile);
IOUtils.copy(is, fos);
fos.close();
}