XFire como habilitar o proxy no Client RESOLVIDO?

Ola, estou tentando consumir um webservice com Xfire, porem no ambiente de producao contem um proxy, estou setando as seguintes propriedaes de acordo com o site: http://xfire.codehaus.org/Client+API

HttpClientParams params = new HttpClientParams();
client.setProperty(CommonsHttpMessageSender.HTTP_CLIENT_PARAMS, params);
client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "300");
client.setProperty(CommonsHttpMessageSender.DISABLE_KEEP_ALIVE, "true");
client.setProperty(CommonsHttpMessageSender.DISABLE_EXPECT_CONTINUE, "true");
client.setProperty(CommonsHttpMessageSender.HTTP_PROXY_HOST, "MY_PROXY_ADDRESS");
client.setProperty(CommonsHttpMessageSender.HTTP_PROXY_PORT, "MY_PROXY_PORT");

Porem ainda ocorre erro de Timeout, alguem ja usou o Cliente do Xfire com proxy para me dar help?

Grato, Fabio Pedrosa.

Se seu proxy server for Microsoft (MS ISA Server ou MS Proxy Server), use o NTLM Authorization Proxy Server para contornar esse problema (eu uso esse cara desde o tempo em que o Netscape não tinha suporte a NTLM Authentication com proxies).

http://ntlmaps.sourceforge.net/

Você faz o seu programa se conectar ao NTLM Authorization Proxy Server (sem autenticação de usuário), e faz o NTLM Authorization Proxy Server se conectar (com autenticação de usuário) ao seu proxy server da Microsoft.

Requer uma versão do Python funcionando na sua máquina (se for Windows, use o do ActiveState: http://www.activestate.com/Products/activepython/

thingol, existe alguma maneira de simular um proxy?, pois no meu ambiente de desenvolvimento nao tenho um para testar, nao existe uma maneira de contornar o problema sem esses outros meios citados, de preferencia diretamente com o framework de webservice, o axis oferece melhor suporte nesses casos?

Se você tiver uma máquina Linux (pode ser uma máquina virtual) você pode tentar configurar um proxy Squid, mas como ele não tem esses problemas de autenticação não é um bom teste.
Criar uma máquina (real ou virtual) com Windows e MS ISA Server, se é isso que o seu cliente tem, é meio chato e pesado - você precisa de um Windows 2003 ou 2000 Server e uma cópia do MS ISA Server, o que leva um bom tempo para instalar e configurar. )

O proxy aqui na producao eh o squid, vou tentar simular em nossa rede.

Meu codigo completo esta assim:

public String obterLotesWS(String usuario, String senha, int idEmpresa)	throws Exception {
	URL url = new URL(getUrlWS());
	HttpClientParams params = new HttpClientParams();
        Client cliente = new Client(url);
	cliente.setProperty(CommonsHttpMessageSender.HTTP_CLIENT_PARAMS,params);
	cliente.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "300");
	cliente.setProperty(CommonsHttpMessageSender.DISABLE_KEEP_ALIVE,"true");
	cliente.setProperty(CommonsHttpMessageSender.DISABLE_EXPECT_CONTINUE,"true");
	cliente.setProperty(CommonsHttpMessageSender.HTTP_PROXY_HOST,getIpProxy());
	cliente.setProperty(CommonsHttpMessageSender.HTTP_PROXY_PORT,getPortaProxy());
	Object[] resultado = cliente.invoke("getLotesImpressaoWS",new Object[] { usuario, senha, idEmpresa });
	return resultado[0].toString();
}

Causando o seguinte erro:

java.net.ConnectException: Connection timed out: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
	at java.net.Socket.connect(Socket.java:519)
	at java.net.Socket.connect(Socket.java:469)
	at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
	at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
	at sun.net.www.http.HttpClient.New(HttpClient.java:306)
	at sun.net.www.http.HttpClient.New(HttpClient.java:323)
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:788)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:729)
	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:654)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:977)
	at java.net.URL.openStream(URL.java:1009)
	at org.codehaus.xfire.client.Client.<init>(Client.java:245)
	at br.com.pedrosa.ws.ClienteWs.obterLotesWS(ClienteWs.java:38)
	at br.com.pedrosa.ws.ClienteWs.main(ClienteWs.java:53)

Debugando o erro ocorre ao chamar a classe Client:

Client cliente = new Client(url)

Essa url eh o endereco completo do wsdl, existe outra forma de consumir esse servico no Client com Xfire, lembrando que o codigo funciona normalmente sem proxy.

Resolvido basta adicionar as seguintes linhas antes do construtor:

System.setProperty (CommonsHttpMessageSender.HTTP_PROXY_HOST, getIpProxy());
System.setProperty(CommonsHttpMessageSender.HTTP_PROXY_PORT, getPortaProxy());