当前位置: 首页>>代码示例>>Java>>正文


Java Conduit.close方法代码示例

本文整理汇总了Java中org.apache.cxf.transport.Conduit.close方法的典型用法代码示例。如果您正苦于以下问题:Java Conduit.close方法的具体用法?Java Conduit.close怎么用?Java Conduit.close使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.cxf.transport.Conduit的用法示例。


在下文中一共展示了Conduit.close方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: closeConduit

import org.apache.cxf.transport.Conduit; //导入方法依赖的package包/类
public static void closeConduit(Exchange exchange) throws IOException {
    ConduitSelector conduitSelector = null;
    synchronized (exchange) {
        conduitSelector = exchange.get(ConduitSelector.class);
        if (conduitSelector != null) {
            exchange.remove(ConduitSelector.class.getName());
        }
    }

    Conduit selectedConduit = null;
    Message message = exchange.getInMessage() == null ? exchange
            .getOutMessage() : exchange.getInMessage();

    if (conduitSelector != null && message != null) {
        selectedConduit = conduitSelector.selectConduit(message);
        selectedConduit.close(message);
    }

    //TODO the line below was removed, check the impact on the protobuffer importer/exporter
    //selectedConduit.close(message);
}
 
开发者ID:ow2-chameleon,项目名称:fuchsia,代码行数:22,代码来源:ExchangeUtils.java

示例2: createMessageObserver

import org.apache.cxf.transport.Conduit; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
private MessageObserver createMessageObserver(final Conduit c)
{
   return new MessageObserver() 
   {
       public void onMessage(Message inMessage) 
       {
          LoadingByteArrayOutputStream bout = new LoadingByteArrayOutputStream();
          try 
          {
             IOUtils.copy(inMessage.getContent(InputStream.class), bout);
             inMessage.getExchange().put(InputStream.class, bout.createInputStream());
                   
             Map<String, List<String>> inHeaders = 
                (Map<String, List<String>>)inMessage.get(Message.PROTOCOL_HEADERS);
                   
             inMessage.getExchange().put(Message.PROTOCOL_HEADERS, inHeaders);
             c.close(inMessage);
          } 
          catch (IOException e) 
          {
             //ignore
             Logger.getLogger(SOAPConnectionImpl.class).trace(e);
          }
       }
   };
}
 
开发者ID:jbossws,项目名称:jbossws-cxf,代码行数:28,代码来源:SOAPConnectionImpl.java

示例3: call

import org.apache.cxf.transport.Conduit; //导入方法依赖的package包/类
@Override
public SOAPMessage call(SOAPMessage msgOut, Object addressObject) throws SOAPException 
{
   checkClosed();
   
   String address = getAddress(addressObject);
   ConduitInitiator ci = getConduitInitiator(address);
    
    
   // create a new Message and Exchange
   EndpointInfo info = new EndpointInfo();
   info.setAddress(address);
   Message outMessage = new MessageImpl();
   Exchange exch = new ExchangeImpl();
   outMessage.setExchange(exch);
   exch.put("org.apache.cxf.transport.process_fault_on_http_400", true); //JBWS-3945
    
   // sent SOAPMessage
   try 
   {
      final Conduit c = ci.getConduit(info, BusFactory.getThreadDefaultBus(false)); //TODO verify bus

      if (msgOut.saveRequired())
      {
         msgOut.saveChanges();
      }
    
      Map<String, List<String>> outHeaders = new HashMap<String, List<String>>();
      for (Iterator<?> it = msgOut.getMimeHeaders().getAllHeaders(); it.hasNext();) 
      {
         MimeHeader mimeHeader = (MimeHeader)it.next();
         if ("Content-Type".equals(mimeHeader.getName())) 
         {
            outMessage.put(Message.CONTENT_TYPE, mimeHeader.getValue());
         }
            
         // disable the chunked encoding if requested
         if ("Transfer-Encoding".equals(mimeHeader.getName())
             && "disabled".equals(mimeHeader.getValue())
             && c instanceof HTTPConduit) 
         {
            ((HTTPConduit)c).getClient().setAllowChunking(false);
            continue;
         }
            
         List<String> values = outHeaders.get(mimeHeader.getName());
         if (values == null) 
         {
            values = new ArrayList<String>();
            outHeaders.put(mimeHeader.getName(), values);
         } 
         values.add(mimeHeader.getValue());
      }
      outMessage.put(Message.HTTP_REQUEST_METHOD, "POST");
      outMessage.put(Message.PROTOCOL_HEADERS, outHeaders);
      c.prepare(outMessage);
        
      OutputStream outs = outMessage.getContent(OutputStream.class);
      msgOut.writeTo(outs);
        
      c.setMessageObserver(createMessageObserver(c));
        
      c.close(outMessage);
   } 
   catch (Exception ex) 
   {
      throw MESSAGES.soapMessageCouldNotBeSent(ex);
   }    

   // read SOAPMessage        
   return readSoapMessage(exch); 
}
 
开发者ID:jbossws,项目名称:jbossws-cxf,代码行数:73,代码来源:SOAPConnectionImpl.java

示例4: get

import org.apache.cxf.transport.Conduit; //导入方法依赖的package包/类
@Override
public SOAPMessage get(Object addressObject) throws SOAPException 
{
   checkClosed();
   
   String address = getAddress(addressObject);
   ConduitInitiator ci = getConduitInitiator(address);
    
    
   // create a new Message and Exchange
   EndpointInfo info = new EndpointInfo();
   info.setAddress(address);
   Message outMessage = new MessageImpl();
   Exchange exch = new ExchangeImpl();
   outMessage.setExchange(exch);
    
   // sent GET request
   try 
   {
      final Conduit c = ci.getConduit(info, BusFactory.getThreadDefaultBus(false)); //TODO verify bus
      
      if (c instanceof HTTPConduit)
      {
         ((HTTPConduit)c).getClient().setAutoRedirect(true);
      }
        
      outMessage.put(Message.HTTP_REQUEST_METHOD, "GET");
      c.prepare(outMessage);
        
      c.setMessageObserver(createMessageObserver(c));
        
      c.close(outMessage);
   } 
   catch (Exception ex) 
   {
      throw MESSAGES.getRequestCouldNotBeSent(ex);
   }    

   // read SOAPMessage
   return readSoapMessage(exch);
}
 
开发者ID:jbossws,项目名称:jbossws-cxf,代码行数:42,代码来源:SOAPConnectionImpl.java

示例5: complete

import org.apache.cxf.transport.Conduit; //导入方法依赖的package包/类
/**
 * Called on completion of the MEP for which the Conduit was required.
 * 
 * @param exchange
 *            represents the completed MEP
 */
public void complete(Exchange exchange) {
	InvocationKey key = new InvocationKey(exchange);
	InvocationContext invocation = getInvocation(key);
	boolean failover = false;
	Conduit old = (Conduit) exchange.getOutMessage().remove(Conduit.class.getName());
	if (requiresFailover(exchange)) {
		onFailure(invocation.getContext());
		LOG.debug("Failover {}", invocation.getContext());
		Endpoint failoverTarget = getFailoverTarget(exchange, invocation);
		if (failoverTarget != null) {
			setEndpoint(failoverTarget);
			if (old != null) {
				old.close();
				conduits.remove(old);
			}
			failover = performFailover(exchange, invocation);
		}
	} else {
		if (invocation != null) {
			onSuccess(invocation.getContext());
		}
	}
	if (!failover) {
		LOG.debug("Failover not required");
		synchronized (this) {
			inProgress.remove(key);
		}
		if (MessageUtils.isTrue(exchange.get("KeepConduitAlive"))) {
			return;
		}

		try {
			if (exchange.getInMessage() != null) {
				Conduit c = (Conduit) exchange.getOutMessage().get(Conduit.class);
				if (c == null) {
					getSelectedConduit(exchange.getInMessage()).close(exchange.getInMessage());
				} else {
					c.close(exchange.getInMessage());
				}
			}
		} catch (IOException e) {
		}
	}
}
 
开发者ID:jaceko,项目名称:cxf-circuit-switcher,代码行数:51,代码来源:CircuitSwitcherTargetSelector.java


注:本文中的org.apache.cxf.transport.Conduit.close方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。