@Override public void onMessage(final HttpRequest request, final HttpResponse response) throws Exception { final ClassLoader oldLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(CxfUtil.initBusLoader()); try { destination.invoke(null, request.getServletContext(), request, response); } finally { if (oldLoader != null) { CxfUtil.clearBusLoader(oldLoader); } } }
@Override public void onMessage(final HttpRequest request, final HttpResponse response) throws Exception { final ClassLoader oldLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(CxfUtil.initBusLoader()); try { destination.invoke(null, request.getServletContext(), request, response); } finally { if (oldLoader != null) { CxfUtil.clearBusLoader(oldLoader); } } }
public void doInvoke(final HttpRequest httpRequest, final HttpResponse httpResponse) throws IOException { String baseURL = BaseUrlHelper.getBaseURL(pattern != null ? new ServletRequestAdapter(httpRequest) { @Override // we have a filter so we need the computed servlet path to not break CXF public String getServletPath() { return pattern; } } : httpRequest); if (!baseURL.endsWith("/")) { baseURL += "/"; } httpRequest.setAttribute("org.apache.cxf.transport.endpoint.address", baseURL); final ClassLoader oldLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(CxfUtil.initBusLoader()); try { destination.invoke(null, httpRequest.getServletContext(), httpRequest, httpResponse); } catch (final Throwable t) { throw new IOException("Failed to invoke AbstractHTTPDestination", t); } finally { CxfUtil.clearBusLoader(oldLoader); } }