javax.annotation.OverridingMethodsMustInvokeSuper#javax.xml.ws.handler.Handler源码实例Demo

下面列出了javax.annotation.OverridingMethodsMustInvokeSuper#javax.xml.ws.handler.Handler 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: openjdk-8-source   文件: WSEndpointImpl.java
public synchronized void dispose() {
    if (disposed) {
        return;
    }
    disposed = true;

    masterTubeline.preDestroy();

    for (Handler handler : binding.getHandlerChain()) {
        for (Method method : handler.getClass().getMethods()) {
            if (method.getAnnotation(PreDestroy.class) == null) {
                continue;
            }
            try {
                method.invoke(handler);
            } catch (Exception e) {
                logger.log(Level.WARNING, HandlerMessages.HANDLER_PREDESTROY_IGNORE(e.getMessage()), e);
            }
            break;
        }
    }
    closeManagedObjectManager();
    LazyMOMProvider.INSTANCE.unregisterEndpoint(this);
}
 
源代码2 项目: openjdk-jdk8u   文件: WSEndpointImpl.java
public synchronized void dispose() {
    if (disposed) {
        return;
    }
    disposed = true;

    masterTubeline.preDestroy();

    for (Handler handler : binding.getHandlerChain()) {
        for (Method method : handler.getClass().getMethods()) {
            if (method.getAnnotation(PreDestroy.class) == null) {
                continue;
            }
            try {
                method.invoke(handler);
            } catch (Exception e) {
                logger.log(Level.WARNING, HandlerMessages.HANDLER_PREDESTROY_IGNORE(e.getMessage()), e);
            }
            break;
        }
    }
    closeManagedObjectManager();
    LazyMOMProvider.INSTANCE.unregisterEndpoint(this);
}
 
void setUpProcessor() {
    if (handlers == null) {
            // Take a snapshot, User may change chain after invocation, Same chain
            // should be used for the entire MEP
            handlers = new ArrayList<Handler>();
            WSBinding binding = getBinding();
            List<LogicalHandler> logicalSnapShot= ((BindingImpl) binding).getHandlerConfig().getLogicalHandlers();
            if (!logicalSnapShot.isEmpty()) {
                handlers.addAll(logicalSnapShot);
                if (binding.getSOAPVersion() == null) {
                    processor = new XMLHandlerProcessor(this, binding,
                            handlers);
                } else {
                    processor = new SOAPHandlerProcessor(true, this, binding,
                            handlers);
                }
            }
    }
}
 
源代码4 项目: cxf   文件: AnnotationHandlerChainBuilderTest.java
@Test
public void testFindHandlerChainAnnotation() {
    HandlerTestImpl handlerTestImpl = new HandlerTestImpl();
    AnnotationHandlerChainBuilder chainBuilder = new AnnotationHandlerChainBuilder();
    @SuppressWarnings("rawtypes")
    List<Handler> handlers = chainBuilder
        .buildHandlerChainFromClass(handlerTestImpl.getClass(),
                                    null,
                                    null,
                                    null);
    assertNotNull(handlers);
    assertEquals(9, handlers.size());
    assertEquals(TestLogicalHandler.class, handlers.get(0).getClass());
    assertEquals(TestLogicalHandler.class, handlers.get(1).getClass());
    assertEquals(TestLogicalHandler.class, handlers.get(2).getClass());
    assertEquals(TestLogicalHandler.class, handlers.get(3).getClass());
    assertEquals(TestLogicalHandler.class, handlers.get(4).getClass());
    assertEquals(TestLogicalHandler.class, handlers.get(5).getClass());
    assertEquals(TestLogicalHandler.class, handlers.get(6).getClass());
    assertEquals(TestProtocolHandler.class, handlers.get(7).getClass());
    assertEquals(TestProtocolHandler.class, handlers.get(8).getClass());
}
 
源代码5 项目: freehealth-connector   文件: GenericRequest.java
public Handler<?>[] getHandlerchain() {
   Handler<?>[] result = new Handler[0];
   if (this.beforeSecurity != null && !this.beforeSecurity.isEmpty()) {
      result = (Handler[])((Handler[])ArrayUtils.addAll(result, this.beforeSecurity.toArray(new Handler[0])));
   }

   if (this.securityHandler != null) {
      result = (Handler[])((Handler[])ArrayUtils.addAll(result, this.securityHandler.toArray(new Handler[0])));
   }

   if (this.afterSecurity != null && !this.afterSecurity.isEmpty()) {
      result = (Handler[])((Handler[])ArrayUtils.addAll(result, this.afterSecurity.toArray(new Handler[0])));
   }

   if (this.featureHandlers != null && !this.featureHandlers.isEmpty()) {
      result = (Handler[])((Handler[])ArrayUtils.addAll(result, this.featureHandlers.toArray(new Handler[0])));
   }

   result = HandlersLoader.addingDefaultHandlers(result);
   return result;
}
 
源代码6 项目: cxf   文件: HandlerChainBuilder.java
private void configureHandler(Handler<?> handler, PortComponentHandlerType h) {
    if (!handlerInitEnabled) {
        return;
    }

    if (h.getInitParam().isEmpty()) {
        return;
    }

    Map<String, String> params = new HashMap<>();

    for (ParamValueType param : h.getInitParam()) {
        params.put(trimString(param.getParamName() == null ? null : param.getParamName().getValue()),
                   trimString(param.getParamValue() == null ? null : param.getParamValue().getValue()));
    }

    Method initMethod = getInitMethod(handler);
    if (initMethod != null) {
        initializeViaInitMethod(handler, params, initMethod);
    } else {
        initializeViaInjection(handler, params);
    }
}
 
源代码7 项目: freehealth-connector   文件: GenericRequest.java
public Handler<?>[] getHandlerchain() {
   Handler<?>[] result = new Handler[0];
   if (this.beforeSecurity != null && !this.beforeSecurity.isEmpty()) {
      result = (Handler[])((Handler[])ArrayUtils.addAll(result, this.beforeSecurity.toArray(new Handler[0])));
   }

   if (this.securityHandler != null) {
      result = (Handler[])((Handler[])ArrayUtils.addAll(result, this.securityHandler.toArray(new Handler[0])));
   }

   if (this.afterSecurity != null && !this.afterSecurity.isEmpty()) {
      result = (Handler[])((Handler[])ArrayUtils.addAll(result, this.afterSecurity.toArray(new Handler[0])));
   }

   if (this.featureHandlers != null && !this.featureHandlers.isEmpty()) {
      result = (Handler[])((Handler[])ArrayUtils.addAll(result, this.featureHandlers.toArray(new Handler[0])));
   }

   result = HandlersLoader.addingDefaultHandlers(result);
   return result;
}
 
源代码8 项目: openjdk-jdk8u   文件: ClientLogicalHandlerTube.java
void setUpProcessor() {
    if (handlers == null) {
            // Take a snapshot, User may change chain after invocation, Same chain
            // should be used for the entire MEP
            handlers = new ArrayList<Handler>();
            WSBinding binding = getBinding();
            List<LogicalHandler> logicalSnapShot= ((BindingImpl) binding).getHandlerConfig().getLogicalHandlers();
            if (!logicalSnapShot.isEmpty()) {
                handlers.addAll(logicalSnapShot);
                if (binding.getSOAPVersion() == null) {
                    processor = new XMLHandlerProcessor(this, binding,
                            handlers);
                } else {
                    processor = new SOAPHandlerProcessor(true, this, binding,
                            handlers);
                }
            }
    }
}
 
源代码9 项目: freehealth-connector   文件: LoggingUtil.java
/**
 * Adds the in out logger.
 *
 * @param bindingProvider the binding provider
 */
@SuppressWarnings("rawtypes")
public static void addInOutLoggerHandler(Object port, boolean soapfaultHandler) {
	if (port instanceof BindingProvider) {
		BindingProvider bindingProvider = (BindingProvider) port;
		List<Handler> handlerChain = new ArrayList<Handler>();
		handlerChain.addAll(bindingProvider.getBinding().getHandlerChain());
		handlerChain.add(new LoggingHandler());
		if(soapfaultHandler){
			handlerChain.add(new SoapFaultHandler());
		}
		bindingProvider.getBinding().setHandlerChain(handlerChain);
	} else {
		LOG.warn("BindingProvider provider expected, get a " + port);
	}
}
 
源代码10 项目: freehealth-connector   文件: LoggingUtil.java
public static void addInOutLoggerHandler(Object port, boolean soapfaultHandler) {
   if (port instanceof BindingProvider) {
      BindingProvider bindingProvider = (BindingProvider)port;
      List<Handler> handlerChain = new ArrayList();
      handlerChain.addAll(bindingProvider.getBinding().getHandlerChain());
      handlerChain.add(new LoggingHandler());
      if (soapfaultHandler) {
         handlerChain.add(new SoapFaultHandler());
      }

      bindingProvider.getBinding().setHandlerChain(handlerChain);
   } else {
      LOG.warn("BindingProvider provider expected, get a " + port);
   }

}
 
源代码11 项目: cxf   文件: HandlerChainBuilder.java
protected List<Handler> buildHandlerChain(PortComponentHandlerType ht, ClassLoader classLoader) {
    List<Handler> handlerChain = new ArrayList<>();
    try {
        final boolean fineLog = LOG.isLoggable(Level.FINE);
        if (fineLog) {
            LOG.log(Level.FINE, "loading handler", trimString(ht.getHandlerName().getValue()));
        }

        Class<? extends Handler> handlerClass = Class.forName(
                                                              trimString(ht.getHandlerClass()
                                                                  .getValue()), true, classLoader)
            .asSubclass(Handler.class);

        Handler<?> handler = handlerClass.newInstance();
        if (fineLog) {
            LOG.fine("adding handler to chain: " + handler);
        }
        configureHandler(handler, ht);
        handlerChain.add(handler);
    } catch (Exception e) {
        throw new WebServiceException(BUNDLE.getString("HANDLER_INSTANTIATION_EXC"), e);
    }
    return handlerChain;
}
 
源代码12 项目: freehealth-connector   文件: LoggingUtil.java
/**
 * Adds the in out logger.
 *
 * @param bindingProvider the binding provider
 */
@SuppressWarnings("rawtypes")
public static void addInOutLoggerHandler(Object port, boolean soapfaultHandler) {
	if (port instanceof BindingProvider) {
		BindingProvider bindingProvider = (BindingProvider) port;
		List<Handler> handlerChain = new ArrayList<Handler>();
		handlerChain.addAll(bindingProvider.getBinding().getHandlerChain());
		handlerChain.add(new LoggingHandler());
		if(soapfaultHandler){
			handlerChain.add(new SoapFaultHandler());
		}
		bindingProvider.getBinding().setHandlerChain(handlerChain);
	} else {
		LOG.warn("BindingProvider provider expected, get a " + port);
	}
}
 
源代码13 项目: jdk8u60   文件: ClientLogicalHandlerTube.java
void setUpProcessor() {
    if (handlers == null) {
            // Take a snapshot, User may change chain after invocation, Same chain
            // should be used for the entire MEP
            handlers = new ArrayList<Handler>();
            WSBinding binding = getBinding();
            List<LogicalHandler> logicalSnapShot= ((BindingImpl) binding).getHandlerConfig().getLogicalHandlers();
            if (!logicalSnapShot.isEmpty()) {
                handlers.addAll(logicalSnapShot);
                if (binding.getSOAPVersion() == null) {
                    processor = new XMLHandlerProcessor(this, binding,
                            handlers);
                } else {
                    processor = new SOAPHandlerProcessor(true, this, binding,
                            handlers);
                }
            }
    }
}
 
源代码14 项目: dropwizard-jaxws   文件: ClientBuilderTest.java
@Test
public void buildClient() {

    Handler<?> handler = mock(Handler.class);

    Interceptor<?> inInterceptor = mock(Interceptor.class);
    Interceptor<?> inFaultInterceptor = mock(Interceptor.class);
    Interceptor<?> outInterceptor = mock(Interceptor.class);
    Interceptor<?> outFaultInterceptor = mock(Interceptor.class);

    ClientBuilder<Object> builder = new ClientBuilder<>(Object.class, "address")
            .connectTimeout(1234)
            .receiveTimeout(5678)
            .handlers(handler, handler)
            .bindingId("binding id")
            .cxfInInterceptors(inInterceptor, inInterceptor)
            .cxfInFaultInterceptors(inFaultInterceptor, inFaultInterceptor)
            .cxfOutInterceptors(outInterceptor, outInterceptor)
            .cxfOutFaultInterceptors(outFaultInterceptor, outFaultInterceptor);

    assertThat(builder.getAddress(), equalTo("address"));
    assertThat(builder.getServiceClass(), equalTo(Object.class));
    assertThat(builder.getConnectTimeout(), equalTo(1234));
    assertThat(builder.getReceiveTimeout(), equalTo(5678));
    assertThat(builder.getBindingId(), equalTo("binding id"));
    assertThat(builder.getCxfInInterceptors(), contains(new Interceptor<?>[]{ inInterceptor, inInterceptor }));
    assertThat(builder.getCxfInFaultInterceptors(), contains(new Interceptor<?>[]{ inFaultInterceptor, inFaultInterceptor }));
    assertThat(builder.getCxfOutInterceptors(), contains(new Interceptor<?>[]{ outInterceptor, outInterceptor }));
    assertThat(builder.getCxfOutFaultInterceptors(), contains(new Interceptor<?>[]{ outFaultInterceptor, outFaultInterceptor }));
}
 
源代码15 项目: openjdk-jdk9   文件: HTTPBindingImpl.java
/**
 * This method separates the logical and protocol handlers and
 * sets the HandlerConfiguration.
 * Only logical handlers are allowed with HTTPBinding.
 * Setting SOAPHandlers throws WebServiceException
 */
public void setHandlerChain(List<Handler> chain) {
    for (Handler handler : chain) {
        if (!(handler instanceof LogicalHandler)) {
            throw new WebServiceException(ClientMessages.NON_LOGICAL_HANDLER_SET(handler.getClass()));
        }
    }
    setHandlerConfig(new HandlerConfiguration(Collections.<String>emptySet(), chain));
}
 
源代码16 项目: openjdk-jdk8u   文件: HandlerConfigurator.java
HandlerResolver getResolver() {
    return new HandlerResolver() {
        public List<Handler> getHandlerChain(PortInfo portInfo) {
            return new ArrayList<Handler>(
                handlerModel.getHandlersForPortInfo(portInfo).getHandlers());
        }
    };
}
 
源代码17 项目: TencentKona-8   文件: ClientMessageHandlerTube.java
void setUpProcessor() {
    if (handlers == null) {
            // Take a snapshot, User may change chain after invocation, Same chain
            // should be used for the entire MEP
            handlers = new ArrayList<Handler>();
            HandlerConfiguration handlerConfig = ((BindingImpl) getBinding()).getHandlerConfig();
            List<MessageHandler> msgHandlersSnapShot= handlerConfig.getMessageHandlers();
            if (!msgHandlersSnapShot.isEmpty()) {
                handlers.addAll(msgHandlersSnapShot);
                roles = new HashSet<String>();
                roles.addAll(handlerConfig.getRoles());
                processor = new SOAPHandlerProcessor(true, this, getBinding(), handlers);
            }
    }
}
 
源代码18 项目: hottub   文件: ServerLogicalHandlerTube.java
private void setUpHandlersOnce() {
    handlers = new ArrayList<Handler>();
    List<LogicalHandler> logicalSnapShot= ((BindingImpl) getBinding()).getHandlerConfig().getLogicalHandlers();
    if (!logicalSnapShot.isEmpty()) {
        handlers.addAll(logicalSnapShot);
    }
}
 
源代码19 项目: tomee   文件: ClientHandlerResolverImpl.java
public void destroyHandlers() {
    final List<ClientInjectionProcessor<Handler>> handlerInstances = new ArrayList<ClientInjectionProcessor<Handler>>(this.handlerInstances);
    this.handlerInstances.clear();
    for (final ClientInjectionProcessor<Handler> handlerInstance : handlerInstances) {
        handlerInstance.preDestroy();
    }
}
 
源代码20 项目: cxf   文件: AnnotationHandlerChainBuilderTest.java
@Test
public void testFindHandlerChainAnnotationPerPortServiceBindingWildcard() {
    HandlerTestImpl handlerTestImpl = new HandlerTestImpl();
    AnnotationHandlerChainBuilder chainBuilder = new AnnotationHandlerChainBuilder();
    QName portQName = new QName("http://apache.org/handler_test", "SoapPortWildcard");
    QName serviceQName = new QName("http://apache.org/handler_test", "SoapServiceWildcard");
    String bindingID = "BindingUnknow";
    @SuppressWarnings("rawtypes")
    List<Handler> handlers = chainBuilder
        .buildHandlerChainFromClass(handlerTestImpl.getClass(), portQName, serviceQName, bindingID);
    assertNotNull(handlers);
    assertEquals(7, handlers.size());
}
 
源代码21 项目: cxf   文件: JaxWsProxyFactoryBean.java
private void buildHandlerChain(JaxWsClientProxy cp) {
    AnnotationHandlerChainBuilder builder = new AnnotationHandlerChainBuilder();
    JaxWsServiceFactoryBean sf = (JaxWsServiceFactoryBean)getServiceFactory();
    @SuppressWarnings("rawtypes")
    List<Handler> chain = new ArrayList<>(handlers);
    if (loadHandlers) {
        chain.addAll(builder.buildHandlerChainFromClass(sf.getServiceClass(),
                                                        sf.getEndpointInfo().getName(),
                                                        sf.getServiceQName(),
                                                        this.getBindingId()));
    }

    if (!chain.isEmpty()) {
        ResourceManager resourceManager = getBus().getExtension(ResourceManager.class);
        List<ResourceResolver> resolvers = resourceManager.getResourceResolvers();
        resourceManager = new DefaultResourceManager(resolvers);
        resourceManager.addResourceResolver(new WebServiceContextResourceResolver());
        ResourceInjector injector = new ResourceInjector(resourceManager);
        for (Handler<?> h : chain) {
            if (Proxy.isProxyClass(h.getClass()) && getServiceClass() != null) {
                injector.inject(h, getServiceClass());
                injector.construct(h, getServiceClass());
            } else {
                injector.inject(h);
                injector.construct(h);
            }
        }
    }

    cp.getBinding().setHandlerChain(chain);
}
 
源代码22 项目: cxf   文件: HandlerChainBuilderTest.java
@Test
public void testChainSorting() {
    List<Handler> sortedHandlerChain = builder.sortHandlers(Arrays.asList(allHandlers));
    assertSame(logicalHandlers[0], sortedHandlerChain.get(0));
    assertSame(logicalHandlers[1], sortedHandlerChain.get(1));
    assertSame(protocolHandlers[0], sortedHandlerChain.get(2));
    assertSame(protocolHandlers[1], sortedHandlerChain.get(3));
}
 
源代码23 项目: openjdk-8-source   文件: HandlerChainsModel.java
public HandlerAnnotationInfo getHandlersForPortInfo(PortInfo info){

        HandlerAnnotationInfo handlerInfo = new HandlerAnnotationInfo();
        List<Handler> handlerClassList = new ArrayList<Handler>();
        Set<String> roles = new HashSet<String>();

        for(HandlerChainType hchain : handlerChains) {
            boolean hchainMatched = false;
            if((!hchain.isConstraintSet()) ||
                    JAXWSUtils.matchQNames(info.getServiceName(), hchain.getServiceNamePattern()) ||
                    JAXWSUtils.matchQNames(info.getPortName(), hchain.getPortNamePattern()) ||
                    hchain.getProtocolBindings().contains(info.getBindingID()) ){
                hchainMatched = true;

            }
            if(hchainMatched) {
                for(HandlerType handler : hchain.getHandlers()) {
                    try {
                        Handler handlerClass = (Handler) loadClass(annotatedClass.getClassLoader(),
                                handler.getHandlerClass()).newInstance();
                        callHandlerPostConstruct(handlerClass);
                        handlerClassList.add(handlerClass);
                    } catch (InstantiationException ie){
                        throw new RuntimeException(ie);
                    } catch (IllegalAccessException e) {
                        throw new RuntimeException(e);
                    }

                    roles.addAll(handler.getSoapRoles());
                }

            }
        }

        handlerInfo.setHandlers(handlerClassList);
        handlerInfo.setRoles(roles);
        return handlerInfo;

    }
 
源代码24 项目: openjdk-jdk9   文件: HandlerChainsModel.java
public HandlerAnnotationInfo getHandlersForPortInfo(PortInfo info){

        HandlerAnnotationInfo handlerInfo = new HandlerAnnotationInfo();
        List<Handler> handlerClassList = new ArrayList<Handler>();
        Set<String> roles = new HashSet<String>();

        for(HandlerChainType hchain : handlerChains) {
            boolean hchainMatched = false;
            if((!hchain.isConstraintSet()) ||
                    JAXWSUtils.matchQNames(info.getServiceName(), hchain.getServiceNamePattern()) ||
                    JAXWSUtils.matchQNames(info.getPortName(), hchain.getPortNamePattern()) ||
                    hchain.getProtocolBindings().contains(info.getBindingID()) ){
                hchainMatched = true;

            }
            if(hchainMatched) {
                for(HandlerType handler : hchain.getHandlers()) {
                    try {
                        Handler handlerClass = (Handler) loadClass(annotatedClass.getClassLoader(),
                                handler.getHandlerClass()).newInstance();
                        callHandlerPostConstruct(handlerClass);
                        handlerClassList.add(handlerClass);
                    } catch (InstantiationException ie){
                        throw new RuntimeException(ie);
                    } catch (IllegalAccessException e) {
                        throw new RuntimeException(e);
                    }

                    roles.addAll(handler.getSoapRoles());
                }

            }
        }

        handlerInfo.setHandlers(handlerClassList);
        handlerInfo.setRoles(roles);
        return handlerInfo;

    }
 
源代码25 项目: juddi   文件: JUDDIServiceProvider.java
private void registerService(BindingProvider bindingProvider) {
	Binding binding = bindingProvider.getBinding();
	List<Handler> handlerChain = binding.getHandlerChain();

	handlerChain.add(new LoggingHandler());

	// set the handler chain again for the changes to take effect
	binding.setHandlerChain(handlerChain);
}
 
源代码26 项目: tomee   文件: ClientHandlerResolverImpl.java
@Override
public List<Handler> getHandlerChain(final javax.xml.ws.handler.PortInfo portInfo) {
    List<Handler> chain = new ArrayList<Handler>();
    for (final HandlerChainMetaData handlerChain : handlerChains) {
        List<Handler> handlers = buildHandlers(portInfo, handlerChain);
        handlers = sortHandlers(handlers);
        chain.addAll(handlers);
    }
    chain = sortHandlers(chain);
    return chain;
}
 
源代码27 项目: openjdk-jdk8u   文件: ClientSOAPHandlerTube.java
void setUpProcessor() {
    if (handlers == null) {
            // Take a snapshot, User may change chain after invocation, Same chain
            // should be used for the entire MEP
            handlers = new ArrayList<Handler>();
            HandlerConfiguration handlerConfig = ((BindingImpl) getBinding()).getHandlerConfig();
            List<SOAPHandler> soapSnapShot= handlerConfig.getSoapHandlers();
            if (!soapSnapShot.isEmpty()) {
                handlers.addAll(soapSnapShot);
                roles = new HashSet<String>();
                roles.addAll(handlerConfig.getRoles());
                processor = new SOAPHandlerProcessor(true, this, getBinding(), handlers);
            }
    }
}
 
源代码28 项目: openjdk-8-source   文件: ServerSOAPHandlerTube.java
private void setUpHandlersOnce() {
    handlers = new ArrayList<Handler>();
    HandlerConfiguration handlerConfig = ((BindingImpl) getBinding()).getHandlerConfig();
    List<SOAPHandler> soapSnapShot= handlerConfig.getSoapHandlers();
    if (!soapSnapShot.isEmpty()) {
        handlers.addAll(soapSnapShot);
        roles = new HashSet<String>();
        roles.addAll(handlerConfig.getRoles());
    }
}
 
源代码29 项目: openjdk-jdk9   文件: ServerMessageHandlerTube.java
private void setUpHandlersOnce() {
    handlers = new ArrayList<Handler>();
    HandlerConfiguration handlerConfig = ((BindingImpl) getBinding()).getHandlerConfig();
    List<MessageHandler> msgHandlersSnapShot= handlerConfig.getMessageHandlers();
    if (!msgHandlersSnapShot.isEmpty()) {
        handlers.addAll(msgHandlersSnapShot);
        roles = new HashSet<String>();
        roles.addAll(handlerConfig.getRoles());
    }
}
 
@SuppressWarnings("rawtypes")
public CampaignServiceInterfaceImpl() {
  binding = Mockito.mock(Binding.class);
  RequestInfoXPathSet requestInfoXPathSet = Mockito.mock(RequestInfoXPathSet.class);
  ResponseInfoXPathSet responseInfoXPathSet = Mockito.mock(ResponseInfoXPathSet.class);
  List<Handler> handlerList =
      Lists.<Handler>newArrayList(
          new JaxWsSoapContextHandler(requestInfoXPathSet, responseInfoXPathSet));
  when(binding.getHandlerChain()).thenReturn(handlerList);
}