コード例 #1
0
  public void process(VirtualHost virtualHost, ServerMessage message) {
    String exchangeName = message.getMessageHeader().getReplyToExchange();
    String routingKey = message.getMessageHeader().getReplyToRoutingKey();

    IApplicationRegistry appRegistry = virtualHost.getApplicationRegistry();
    QMFService service = appRegistry.getQMFService();

    QMFPackage qmfPackage = service.getPackage(_packageName);
    QMFClass qmfClass = qmfPackage.getQMFClass(_className);

    QMFCommand[] commands = new QMFCommand[2];
    commands[0] = new QMFSchemaResponseCommand(this, qmfClass);
    commands[1] = new QMFCommandCompletionCommand(this);

    Exchange exchange = virtualHost.getExchangeRegistry().getExchange(exchangeName);

    for (QMFCommand cmd : commands) {
      QMFMessage responseMessage = new QMFMessage(routingKey, cmd);

      ArrayList<? extends BaseQueue> queues = exchange.route(responseMessage);

      for (BaseQueue q : queues) {
        try {
          q.enqueue(responseMessage);
        } catch (AMQException e) {
          e.printStackTrace(); // To change body of catch statement use File | Settings | File
          // Templates.
        }
      }
    }
  }