[ADOS] ADOS Developer's Site - XML Stadium
ADOS Company slogan - XML Total Solution
RIGHT:[[目次>Hestia Hacks]]|[[前>RJOによる添付ファイルの送信]]|[[次>Hestia Hacks]]

目次

#contents

*概要 [#k18e5d36]


【PIPReceiverAttach.java】
 1 : import java.io.File;
 2 : import java.io.FileInputStream;
 3 : import java.io.FileWriter;
 4 : import java.io.InputStream;
 5 : import java.io.Writer;
 6 : import java.util.Properties;
 7 : 
 8 : import com.ados.hestia.parser.rnbm.exchange.Container;
 9 : import com.ados.hestia.parser.rnbm.exchange.PayloadContainer;
 10 : import com.ados.hestia.parser.rnbm.exchange.StatusContainer;
 11 : import com.ados.hestia.parser.rnbm.particle.Attachment;
 12 : import com.ados.hestia.sdk.Configuration;
 13 : import com.ados.hestia.sdk.Connection;
 14 : import com.ados.hestia.sdk.message.DirectMessageExchanger;
 15 : import com.ados.hestia.sdk.session.RespondSession;
 16 : import com.ados.hestia.sdk.session.Session;
 17 : 
 18 : public class PIPReceiverAttach {
 19 : 
 20 :   public static void main(String[] args) {
 21 :     try {
 22 :       Properties prop = new Properties();
 23 :       prop.load(new FileInputStream("sample.properties"));
 24 :       String HOST = prop.getProperty("HOST");
 25 :       String USER = prop.getProperty("USER");
 26 :       String PASS = prop.getProperty("PASS");
 27 :       String HANDLER_ID = prop.getProperty("HANDLER_ID");
 28 :       String DIR = System.getProperty("user.dir") + File.separator
 29 :           + "output" + File.separator + "attach";
 30 : 
 31 :       Connection connection = new Connection(HOST, USER, PASS,
 32 :           Connection.EXCHANGE_MODE_DIRECT, null, null, null,
 33 :           HANDLER_ID);
 34 :       DirectMessageExchanger exchanger = new DirectMessageExchanger(
 35 :           connection, Configuration.getInstance());
 36 : 
 37 :       new File(DIR).mkdirs();
 38 :       int time = 0;
 39 :       boolean loop = true;
 40 :       while (loop) {
 41 :         Thread.sleep(5000);
 42 :         SampleUtils.println("loop : " + time++);
 43 :         exchanger.hit();
 44 : 
 45 :         Container container = exchanger.receiveMessage();
 46 :         if (container != null) {
 47 :           SampleUtils.printContainerInformation(container);
 48 :           PayloadContainer request = (PayloadContainer) container;
 49 :           SampleUtils.printServiceContent(request.getServiceContent());
 50 :           Session session = new RespondSession(request
 51 :               .getRemotePartner(), request.getPIPID());
 52 :           SampleUtils.printSessionState("created", session);
 53 :           session.pushMessage(request);
 54 :           SampleUtils.printSessionState("pushed", session);
 55 :           session.acceptPartnerMessage();
 56 :           SampleUtils.printSessionState("accepted", session);
 57 :           StatusContainer status = session.getStatusToSend();
 58 :           SampleUtils.printSessionState("sent status", session);
 59 :           SampleUtils.printContainerInformation(status);
 60 :           exchanger.sendMessage(status);
 61 :           exchanger.hit();
 62 : 
 63 :           Attachment[] atts = request.getAttachments();
 64 :           for (int i = 0; i < atts.length; i++) {
 65 :             Attachment att = atts[i];
 66 :             InputStream in = att.openStream();
 67 :             String filename = DIR + File.separator + att.getName();
 68 :             Writer writer = new FileWriter(filename);
 69 :             int c;
 70 :             while ((c = in.read()) != -1) {
 71 :               writer.write(c);
 72 :             }
 73 :             in.close();
 74 :             writer.close();
 75 :             SampleUtils.println("Attachment : " + att.toString()
 76 :                 + ",CID:" + att.getContentID());
 77 :           }
 78 :           loop = false;
 79 :         }
 80 :       }
 81 : 
 82 :     } catch (Exception e) {
 83 :       e.printStackTrace();
 84 :     }
 85 :   }
 86 : 
 87 : }

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Copyright 2005-2008. ADOS Co., Ltd. All Rights Reserved.