Java Code Examples for org.apache.cxf.jaxws.context.WebServiceContextImpl#clear()
The following examples show how to use
org.apache.cxf.jaxws.context.WebServiceContextImpl#clear() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: HandlerChainInvoker.java From cxf with Apache License 2.0 | 5 votes |
private boolean invokeHandlerChain(List<? extends Handler<?>> handlerChain, MessageContext ctx) { if (handlerChain.isEmpty()) { LOG.log(Level.FINEST, "no handlers registered"); return true; } if (isClosed()) { return false; } if (LOG.isLoggable(Level.FINE)) { LOG.log(Level.FINE, "invoking handlers, direction: " + (outbound ? "outbound" : "inbound")); } if (!outbound) { handlerChain = reverseHandlerChain(handlerChain); } boolean continueProcessing = true; MessageContext oldCtx = null; try { oldCtx = WebServiceContextImpl.setMessageContext(ctx); continueProcessing = invokeHandleMessage(handlerChain, ctx); } finally { // restore the WebServiceContextImpl's ThreadLocal variable to the previous value if (oldCtx == null) { WebServiceContextImpl.clear(); } else { WebServiceContextImpl.setMessageContext(oldCtx); } } return continueProcessing; }
Example 2
Source File: HandlerChainInvoker.java From cxf with Apache License 2.0 | 4 votes |
private boolean invokeHandlerChainHandleFault(List<? extends Handler<?>> handlerChain, MessageContext ctx) { if (handlerChain.isEmpty()) { LOG.log(Level.FINEST, "no handlers registered"); return true; } if (isClosed()) { return false; } //The fault is raised from previous handlers, in this case, we only invoke handleFault //if the fault is a ProtocolException if (fault != null) { if (!(fault instanceof ProtocolException)) { return true; } else if (!responseExpected && !messageDirectionReversed) { // According to jsr224 9.3.2.1, // If throw ProtocolException or a subclass: // No response, normal message processing stops, close is called on each previously invoked handler // in the chain, the exception is dispatched (see section 9.1.2.3). return true; } } if (LOG.isLoggable(Level.FINE)) { LOG.log(Level.FINE, "invoking handlers, direction: " + (outbound ? "outbound" : "inbound")); } setMessageOutboundProperty(ctx); if (!outbound) { handlerChain = reverseHandlerChain(handlerChain); } boolean continueProcessing = true; MessageContext oldCtx = null; try { oldCtx = WebServiceContextImpl.setMessageContext(ctx); continueProcessing = invokeHandleFault(handlerChain, ctx); } finally { // restore the WebServiceContextImpl's ThreadLocal variable to the previous value if (oldCtx == null) { WebServiceContextImpl.clear(); } else { WebServiceContextImpl.setMessageContext(oldCtx); } } return continueProcessing; }
Example 3
Source File: JAXWSMethodInvoker.java From cxf with Apache License 2.0 | 4 votes |
@Override protected Object invoke(Exchange exchange, final Object serviceObject, Method m, List<Object> params) { // set up the webservice request context WrappedMessageContext ctx = new WrappedMessageContext(exchange.getInMessage(), Scope.APPLICATION); Map<String, Object> handlerScopedStuff = removeHandlerProperties(ctx); final MessageContext oldCtx = WebServiceContextImpl.setMessageContext(ctx); List<Object> res = null; try { if ((params == null || params.isEmpty()) && serviceObject instanceof Provider) { params = Collections.singletonList(null); } res = CastUtils.cast((List<?>)super.invoke(exchange, serviceObject, m, params)); if ((serviceObject instanceof Provider) && MessageUtils.getContextualBoolean(exchange.getInMessage(), "jaxws.provider.interpretNullAsOneway", true) && (res != null && !res.isEmpty() && res.get(0) == null) && exchange.getInMessage().getInterceptorChain().getState() == InterceptorChain.State.EXECUTING) { // treat the non-oneway call as oneway when a provider returns null // and the chain is not suspended due to a continuation suspend res = null; changeToOneway(exchange); } //update the webservice response context updateWebServiceContext(exchange, ctx); } catch (Fault f) { //get chance to copy over customer's header if (MessageUtils.getContextualBoolean(exchange.getInMessage(), COPY_SOAP_HEADERS_BY_FAULT, true)) { updateHeader(exchange, ctx); } throw f; } finally { //restore the WebServiceContextImpl's ThreadLocal variable to the previous value if (oldCtx == null) { WebServiceContextImpl.clear(); } else { WebServiceContextImpl.setMessageContext(oldCtx); } addHandlerProperties(ctx, handlerScopedStuff); } return res; }