When building up a reliable predictable solution you need to manage a “response time” as one of the core principles. This is accomplished by implementing timeout policy. You don’t wanna clients hanging on connection forever. Nowadays very common approach to integration is taking advantage of Spring framework.
Spring JAX-WS web service proxies (JaxWsPortProxyFactoryBean) doesn’t offer a direct possibility to set a service timeout via one of their properties. Following lines documents one of the possibilities how to cope with that requirement.
Java implementation:
public class AbstractJaxWsPortProxyFactoryBean extends JaxWsPortProxyFactoryBean { public static final int CONNECT_TIMEOUT = 2500; public void setTimeout(final int timeout) { // JAX WS addCustomProperty("com.sun.xml.ws.connect.timeout", CONNECT_TIMEOUT); addCustomProperty("com.sun.xml.ws.request.timeout", timeout); // Sun JAX WS addCustomProperty("com.sun.xml.internal.ws.connect.timeout", CONNECT_TIMEOUT); addCustomProperty("com.sun.xml.internal.ws.request.timeout", timeout); } @Override public void afterPropertiesSet() { super.afterPropertiesSet(); } }Spring configuration:
Client