Exemplo n.º 1
0
  /**
   * @param message
   * @param endpoint
   * @param to
   * @return
   */
  protected Conduit buildConduit(
      SoapMessage message, final Endpoint endpoint, AttributedURIType to) {
    Conduit c;
    final String address = to.getValue();
    ConduitSelector cs =
        new DeferredConduitSelector() {
          @Override
          public synchronized Conduit selectConduit(Message message) {
            Conduit conduit = null;
            EndpointInfo endpointInfo = endpoint.getEndpointInfo();
            EndpointReferenceType original = endpointInfo.getTarget();
            try {
              if (null != address) {
                endpointInfo.setAddress(address);
              }
              conduit = super.selectConduit(message);
            } finally {
              endpointInfo.setAddress(original);
            }
            return conduit;
          }
        };

    cs.setEndpoint(endpoint);
    c = cs.selectConduit(message);
    // REVISIT
    // use application endpoint message observer instead?
    c.setMessageObserver(
        new MessageObserver() {
          public void onMessage(Message message) {
            LOG.fine("Ignoring response to resent message.");
          }
        });

    message.getExchange().setConduit(c);
    return c;
  }