Erro "cannot retry due to proxy authentication" utilizando Spring + Apache CXF + API Restful

Bom dia pessoal, blz?

estou com alguns problema ao tentar invocar um método post de um serviço restful q implementei, na minha máquina local funciona perfeitamente, mas no servidor, aonde existe um proxy configurado, não roda!!! e acontece o seguinte erro

baseUri: http://servidor:8081/ProjetoRestTeste/services/rest/produto/
POST Response : 407
Location : null


22/10/2009 10:16:07 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
WARNING: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Could not send Message.
	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
	at org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:529)
	at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:510)
	at org.apache.cxf.jaxrs.client.WebClient.invoke(WebClient.java:203)
	at org.apache.cxf.jaxrs.client.WebClient.post(WebClient.java:212)
	at teste.restfull.web.controller.ProdutoController.addProdutoRestful(ProdutoController.java:69)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:152)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
	at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:99)
	at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:771)
	at javax.faces.component.UICommand.broadcast(UICommand.java:372)
	at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
	at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
	at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
	at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at teste.restfull.web.filter.KeepSessionPerPage.doFilter(KeepSessionPerPage.java:72)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:354)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.net.HttpRetryException: cannot retry due to proxy authentication, in streaming mode
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1010)
	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2046)
	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2022)
	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1947)
	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:632)
	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
	... 49 more

segue tb o trecho de código para a chamada ao serviço restful

public void addProdutoRestful(ActionEvent event) {
	ProdutoRestful produtoRestful = new ProdutoRestful();
	produtoRestful.setPartnumber("000000123456987");
	produtoRestful.setDescricao("Produto Restful");
	produtoRestful.setStatus(new Integer(0));
	produtoRestful.setValidade(new Date());
	produtoRestful.setAnalise("1");
	produtoRestful.setPrazoGarantia(new Integer(10));
	
	System.setProperty("http.proxyHost", "[nome do proxy]");
	System.setProperty("http.proxyPort", "[porta do proxy]");
	
	System.setProperty("http.nonProxyHosts", "[nome do host]");
	System.setProperty("http.proxyUser", "[usuario]");
	System.setProperty("http.proxyPassword", "[senha]");
	
	String baseUri = HttpJSFUtil.getBaseUrl() + "/services/rest/produto/";
	System.out.println("baseUri: " + baseUri);
	
	WebClient webClient = WebClient.create(baseUri);
	
	HTTPConduit conduit = (HTTPConduit)WebClient.getConfig(webClient).getConduit();
	HTTPClientPolicy policy = conduit.getClient();
	policy.setProxyServer("[nome do proxy]");
	policy.setProxyServerPort([porta do proxy])

	Response response = webClient.post(produtoRestful);
	
	System.out.println("POST Response : " + response.getStatus());   
	System.out.println("Location : " + response.getMetadata().getFirst("Location"));
}

minha dúvida é se estou setando corretamente o proxy para a chamada ao método webClient.post.

alguem já passou por isso ou sabe algum link q possa me ajudar?

desde já agradeço a atenção e a ajuda!

Valeu!!!

fala ae galera, blz?

então acabei resolvendo em partes :stuck_out_tongue:
pelo menos acho q a questão do proxy foi…
fiz a seguinte alteração no meu código

HTTPConduit conduit = (HTTPConduit)WebClient.getConfig(webClient).getConduit();

HTTPClientPolicy policy = conduit.getClient();
policy.setProxyServer("[nome do proxy]");
policy.setProxyServerPort([porta do proxy]);

conduit.getProxyAuthorization().setUserName("[usuario]");
conduit.getProxyAuthorization().setPassword("[senha]");

adicionei o usuario e senha no método getProxyAuthorization

mas agora estou recebendo um erro 503 do servidor :confused:

baseUri: http//servidor:8081/ProjetoRestTeste/services/rest/produto/
POST Response: 503

POST Response toString: org.apache.cxf.jaxrs.impl.ResponseImpl@17f6b40

alguem poderia me ajudar?

desde já agradeço a atenção!