本文整理汇总了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);
}
示例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);
}
}
};
}
示例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);
}
示例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);
}
示例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) {
}
}
}