/** * */ package net.conselldemallorca.helium.ws.client; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; import javax.xml.namespace.QName; import javax.xml.ws.BindingProvider; import javax.xml.ws.Service; import javax.xml.ws.handler.Handler; /** * Utilitat per a instanciar clients per al servei d'enviament * de contingut a bústies. * * @author Limit Tecnologies <limit@limit.es> */ public class WsClientHelper<T> { public T generarClientWs( String endpoint, QName qname, String userName, String password, Class<T> clazz) throws MalformedURLException { URL url; if (!endpoint.endsWith("?wsdl")) url = new URL(endpoint + "?wsdl"); else url = new URL(endpoint); Service service = Service.create(url, qname); T bustiaWs = service.getPort(clazz); BindingProvider bp = (BindingProvider)bustiaWs; @SuppressWarnings("rawtypes") List<Handler> handlerChain = new ArrayList<Handler>(); handlerChain.add(new SoapLoggingHandler()); bp.getBinding().setHandlerChain(handlerChain); if (userName != null && !userName.isEmpty()) { bp.getRequestContext().put( BindingProvider.USERNAME_PROPERTY, userName); bp.getRequestContext().put( BindingProvider.PASSWORD_PROPERTY, password); } return bustiaWs; } }