The same thing could be done to Call.invoke(), adding something like: if (st instanceof SOAPHTTPConnection) { SOAPHTTPConnection http = (SOAPHTTPConnection)st; http.setTimeout(timeoutMillis); }
> My application needs to be able to detect and handled network > failures. For > this I needed timeouts. There was already support for timeouts in > SOAPHTTPConnection, but I could not find an inteface to this, > so I added my > own. I added this send method to my local copy of > Message.java from SOAP > 2.2. It has been working fine for me for a few weeks now. I > want to know if > now if there is another way to do this. If not, should this method or > something similar be added to apache SOAP? > > Sean McEligot > > /** > * Send an envelope to the given URL via the SOAPTransport that has > * been configured for this instance (or SOAPHTTPConnection > by default). > * The envelope is sent exactly as-is. > * > * @param url the url to send to > * @param actionURI the value of the SOAPAction header > * @param env envelope to send > * @param timeoutMillis the amount of time, in ms, to block on > reading data. > * A zero value indicates an infinite timeout. > * > * @exception SOAPException if something goes wrong. > */ > public void send (URL url, String actionURI, Envelope env, int > timeoutMillis) > throws SOAPException { > // Construct default HTTP transport if not specified. > if (st == null) { > st = new SOAPHTTPConnection (); > if (st instanceof SOAPHTTPConnection) { > ((SOAPHTTPConnection)st).setTimeout(timeoutMillis); > } > } > > // Send request. > st.send (url, actionURI, null, env, null, reqCtx); > } > >