@Override public Object call() throws Exception { Service service = Service.create( url, new QName( NAMESPACE_URI, serviceName ) ); T port = service.getPort( clazz ); // add TRUST_USER if necessary if ( StringUtils.isNotBlank( System.getProperty( "pentaho.repository.client.attemptTrust" ) ) ) { ( (BindingProvider) port ).getRequestContext().put( MessageContext.HTTP_REQUEST_HEADERS, Collections.singletonMap( TRUST_USER, Collections.singletonList( username ) ) ); } else { // http basic authentication ( (BindingProvider) port ).getRequestContext().put( BindingProvider.USERNAME_PROPERTY, username ); ( (BindingProvider) port ).getRequestContext().put( BindingProvider.PASSWORD_PROPERTY, password ); } // accept cookies to maintain session on server ( (BindingProvider) port ).getRequestContext().put( BindingProvider.SESSION_MAINTAIN_PROPERTY, true ); // support streaming binary data // TODO mlowery this is not portable between JAX-WS implementations (uses com.sun) ( (BindingProvider) port ).getRequestContext().put( JAXWSProperties.HTTP_CLIENT_STREAMING_CHUNK_SIZE, 8192 ); SOAPBinding binding = (SOAPBinding) ( (BindingProvider) port ).getBinding(); binding.setMTOMEnabled( true ); return port; } } );
@Advice.OnMethodExit private static void setHandlerChain(@Advice.Return Object portOrDispatch) { if (portOrDispatch instanceof BindingProvider) { final Binding binding = ((BindingProvider) portOrDispatch).getBinding(); final List<Handler> handlerChain = binding.getHandlerChain(); if (handlerChain != null) { binding.setHandlerChain(handlerChain); } else { binding.setHandlerChain(new ArrayList<Handler>()); } } }
@Test public void test() throws Exception { QName serviceName = new QName("http://www.jboss.org/jbossas/quickstarts/wshelloworld/HelloWorld", "HelloWorldService"); Service service = Service.create(new URL("http://localhost:" + getPort()), serviceName); HelloWorldService helloWorldService = service.getPort(HelloWorldService.class); assertThat(helloWorldService).isInstanceOf(BindingProvider.class); final BindingProvider bindingProvider = (BindingProvider) helloWorldService; boolean clientHandlerFound = false; for (Handler handler : bindingProvider.getBinding().getHandlerChain()) { if (handler instanceof TracingClientSOAPHandler) { clientHandlerFound = true; } } assertThat(clientHandlerFound).overridingErrorMessage("No %s found in %s", TracingClientSOAPHandler.class.getSimpleName(), bindingProvider.getBinding().getHandlerChain()).isTrue(); }
public WSBinding getBinding() { if (endpoint != null) { return endpoint.getBinding(); } if (proxy != null) { return (WSBinding) proxy.getBinding(); } return null; } /**
protected void registerSoapHandler(SOAPHandler soapHandler) { BindingProvider bindingProvider = (BindingProvider) this.port; Binding binding = bindingProvider.getBinding(); @SuppressWarnings("unchecked") List<Handler> handlerChain = binding.getHandlerChain(); handlerChain.add(soapHandler); binding.setHandlerChain(handlerChain); }
final BindingProvider bindingProvider = (BindingProvider) proxy; final Binding binding = bindingProvider.getBinding (); final List<Handler> handlerChain = binding.getHandlerChain (); handlerChain.add (new MySoapHandler ()); binding.setHandlerChain (handlerChain);
BindingProvider bindingProvider = (BindingProvider) eventPortType; final Binding binding = bindingProvider.getBinding(); List<Handler> handlerList = binding.getHandlerChain(); if (handlerList == null) handlerList = new ArrayList<Handler>(); handlerList.add(new ActionHandler()); binding.setHandlerChain(handlerList);
ProcessEngineServiceProxy pewsServiceProxy = new ProcessEngineServiceProxy(); pewsServiceProxy._getDescriptor().setEndpoint(url); // install the handler chain BindingProvider bp = (BindingProvider) pewsServiceProxy._getDescriptor().getProxy(); Binding pewsBinding = bp.getBinding(); List<Handler> handlerChain = new java.util.ArrayList<Handler>(); PEWSClientHeaderHandler wsSecurity = new PEWSClientHeaderHandler(); handlerChain.add(wsSecurity); pewsBinding.setHandlerChain(handlerChain);
@SuppressWarnings("unchecked") private void configureBindingProvider(BindingProvider bindingProvider, String location) { bindingProvider.getRequestContext().put( BindingProvider.ENDPOINT_ADDRESS_PROPERTY, location); Binding binding = bindingProvider.getBinding(); @SuppressWarnings("rawtypes") List handlerChain = binding.getHandlerChain(); handlerChain.add(new LoggingHandler()); handlerChain.add(this.payloadLogicalHandler); binding.setHandlerChain(handlerChain); }
/** * Configures SOAP binding of the given SOAP port. */ private void configureBinding(Object port) { BindingProvider bindingProvider = (BindingProvider) port; Map<String, Object> reqContext = bindingProvider.getRequestContext(); reqContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, serviceUrl); Binding binding = bindingProvider.getBinding(); SOAPBinding soapBinding = (SOAPBinding) binding; soapBinding.setMTOMEnabled(wsTransactionConfiguration.isMtom()); }
private void registeredWSSecurityHandler(Object port) { BindingProvider bindingProvider = (BindingProvider) port; Binding binding = bindingProvider.getBinding(); @SuppressWarnings("rawtypes") List<Handler> handlerChain = binding.getHandlerChain(); this.wsSecurityClientHandler = new WSSecurityClientHandler(); handlerChain.add(this.wsSecurityClientHandler); binding.setHandlerChain(handlerChain); }
/** * Registers the logging SOAP handler on the given JAX-WS port component. */ private void registerLoggerHandler(Object port) { BindingProvider bindingProvider = (BindingProvider) port; Binding binding = bindingProvider.getBinding(); @SuppressWarnings("rawtypes") List<Handler> handlerChain = binding.getHandlerChain(); handlerChain.add(new LoggingSoapHandler()); binding.setHandlerChain(handlerChain); }
/** * Attach an authentication handler to the web service, that uses the configured user and password */ private void attachAuthenticationHandler(BindingProvider service, CIMInstance cimInstance) { service.getBinding().setHandlerChain(Arrays.<Handler>asList(new ClientAuthenticationHandlerWSS( cimInstance.getCoverityUser(), cimInstance.getCoverityPassword()))); }
private void addHandlersProgrammatically(BindingProvider bp, Handler<?>...handlers) { @SuppressWarnings("rawtypes") List<Handler> handlerChain = bp.getBinding().getHandlerChain(); assertNotNull(handlerChain); for (Handler<?> h : handlers) { handlerChain.add(h); } bp.getBinding().setHandlerChain(handlerChain); }
public void addHandlersProgrammatically(BindingProvider bp, Handler<?>...handlers) { @SuppressWarnings("rawtypes") List<Handler> handlerChain = bp.getBinding().getHandlerChain(); assertNotNull(handlerChain); for (Handler<?> h : handlers) { handlerChain.add(h); } bp.getBinding().setHandlerChain(handlerChain); }
void addHandlersToChain(BindingProvider bp, Handler<?>... handlers) { @SuppressWarnings("rawtypes") List<Handler> handlerChain = bp.getBinding().getHandlerChain(); assertNotNull(handlerChain); for (Handler<?> h : handlers) { handlerChain.add(h); } bp.getBinding().setHandlerChain(handlerChain); }
@Test public void testHandlerPostConstruct() throws Exception { URL wsdl = getClass().getResource("/wsdl/addNumbers.wsdl"); AddNumbersServiceWithAnnotation service = new AddNumbersServiceWithAnnotation(wsdl, serviceName); AddNumbers port = service.getPort(portName, AddNumbers.class); setAddress(port, addNumbersAddress); @SuppressWarnings("rawtypes") List<Handler> handlerChain = ((BindingProvider)port).getBinding().getHandlerChain(); SmallNumberHandler h = (SmallNumberHandler)handlerChain.get(0); assertTrue(h.isPostConstructInvoked()); }
@Test public void testAddingUnusedHandlersThroughConfigFile() { HandlerTestServiceWithAnnotation service1 = new HandlerTestServiceWithAnnotation(wsdl, serviceName); HandlerTest handlerTest1 = service1.getPort(portName, HandlerTest.class); BindingProvider bp1 = (BindingProvider)handlerTest1; Binding binding1 = bp1.getBinding(); @SuppressWarnings("rawtypes") List<Handler> port1HandlerChain = binding1.getHandlerChain(); assertEquals(1, port1HandlerChain.size()); }
private static void initClient() { JaxWsProxyFactoryBean clientFactory = new JaxWsProxyFactoryBean(); clientFactory.setServiceClass(AttachmentService.class); clientFactory.setAddress(ADDRESS); client = (AttachmentService) clientFactory.create(); //enable MTOM in client BindingProvider bp = (BindingProvider) client; SOAPBinding binding = (SOAPBinding) bp.getBinding(); binding.setMTOMEnabled(true); } }
@Test @org.junit.Ignore public void testEcho() throws Exception { byte[] bytes = ImageHelper.getImageBytes(getImage("/java.jpg"), "image/jpeg"); Holder<byte[]> image = new Holder<>(bytes); Hello port = getPort(); SOAPBinding binding = (SOAPBinding) ((BindingProvider)port).getBinding(); binding.setMTOMEnabled(true); port.echoData(image); assertNotNull(image); }