/** * Configure the client proxy factory; currently set the binding customization in the databinding (Client Side). * * @param factory */ protected void configureClientProxyFactoryBean(ClientProxyFactoryBean factory) { //Configure binding customization if (customization != null) { //customize default databinding (early pulls in ServiceFactory default databinding and configure it, as it's lazily loaded) ReflectionServiceFactoryBean serviceFactory = factory.getServiceFactory(); serviceFactory.reset(); DataBinding serviceFactoryDataBinding = serviceFactory.getDataBinding(true); configureBindingCustomization(serviceFactoryDataBinding, customization); serviceFactory.setDataBinding(serviceFactoryDataBinding); //customize user provided databinding (CXF later overrides the ServiceFactory databinding using the user provided one) if (factory.getDataBinding() == null) { //set the endpoint factory's databinding to prevent CXF resetting everything because user did not provide anything factory.setDataBinding(serviceFactoryDataBinding); } else { configureBindingCustomization(factory.getDataBinding(), customization); } } //add other configurations here below }
private void setupForTest(boolean enableClientMTOM) throws Exception { AegisDatabinding aegisBinding = new AegisDatabinding(); aegisBinding.setMtomEnabled(enableClientMTOM); ClientProxyFactoryBean proxyFac = new ClientProxyFactoryBean(); proxyFac.setDataBinding(aegisBinding); proxyFac.setAddress("http://localhost:" + PORT + "/mtom"); JaxWsProxyFactoryBean jaxwsFac = new JaxWsProxyFactoryBean(); jaxwsFac.setDataBinding(new AegisDatabinding()); jaxwsFac.setAddress("http://localhost:" + PORT + "/jaxWsMtom"); Map<String, Object> props = new HashMap<>(); if (enableClientMTOM) { props.put("mtom-enabled", Boolean.TRUE); } proxyFac.setProperties(props); client = proxyFac.create(MtomTestService.class); jaxwsClient = jaxwsFac.create(MtomTestService.class); impl = (MtomTestImpl)applicationContext.getBean("mtomImpl"); }
clientProxyFactoryBean.setAddress(addressForClient); if (dataBindingForClient != null){ clientProxyFactoryBean.setDataBinding(dataBindingForClient);
@Test public void testAegisClient() throws Exception { AegisDatabinding aegisBinding = new AegisDatabinding(); ClientProxyFactoryBean proxyFactory = new ClientProxyFactoryBean(); proxyFactory.setDataBinding(aegisBinding); proxyFactory.setServiceClass(AuthService.class); proxyFactory.setAddress("http://localhost:" + PORT + "/service"); AuthService service = (AuthService) proxyFactory.create(); assertTrue(service.authenticate("Joe", "Joe", "123")); assertFalse(service.authenticate("Joe1", "Joe", "fang")); assertTrue(service.authenticate("Joe", null, "123")); List<String> list = service.getRoles("Joe"); assertEquals(3, list.size()); assertEquals("Joe", list.get(0)); assertEquals("Joe-1", list.get(1)); assertEquals("Joe-2", list.get(2)); String[] roles = service.getRolesAsArray("Joe"); assertEquals(2, roles.length); assertEquals("Joe", roles[0]); assertEquals("Joe-1", roles[1]); assertEquals("get Joe", service.getAuthentication("Joe")); Authenticate au = new Authenticate(); au.setSid("ffang"); au.setUid("ffang"); assertTrue(service.authenticate(au)); au.setUid("ffang1"); assertFalse(service.authenticate(au)); }