注意HttpURLConnection引用必须是sun.net.www.protocol.http.HttpURLConnection这个类而不是org.apache.commons.httpclient.util.HttpURLConnection
或者java.net.HttpURLConnection
废话不说,直接上代码
import java.net.URL;
import org.codehaus.xfire.client.Client;
import org.codehaus.xfire.transport.http.CommonsHttpMessageSender;
import sun.net.www.protocol.http.HttpURLConnection;
URL url = new URL(http://xxxx?wsdl);
HttpURLConnection httpConnection = (HttpURLConnection)url.openConnection();
httpConnection.setReadTimeout(1000);//设置http连接的读超时,单位是毫秒
httpConnection.connect();
client = new Client(httpConnection.getInputStream(), null);
client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, String.valueOf(1000));//设置发送的超时限制,单位是毫秒;
client.setProperty(CommonsHttpMessageSender.DISABLE_KEEP_ALIVE, "true");
client.setProperty(CommonsHttpMessageSender.DISABLE_EXPECT_CONTINUE, "true");
Object[] result = client.invoke("某个方法",new Object[]{参数,....});