2012-04-04 2 views
2

весна контекст моего клиента:CXF JAXRS - http-conf: клиент ReceiveTimeout не работает?

<http-conf:conduit name="*.http-conduit"> 
    <http-conf:authorization> 
     <sec:AuthorizationType>Negotiate</sec:AuthorizationType> 
    </http-conf:authorization> 
    <http-conf:client ReceiveTimeout="0"></http-conf:client> 
</http-conf:conduit> 

сервер продолжает обрабатывать запрос, но клиент таймаут после 60000ms, что значение тайм-аут по умолчанию. Любая помощь?

Update (10 апреля 2012):

Попробовал следующий подход.

ClientProxyImpl client = (ClientProxyImpl) alertService; 
    Client proxy = ClientProxy.getClient(alertService); 

    HTTPConduit conduit = (HTTPConduit) proxy.getConduit(); 

    HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); 
    httpClientPolicy.setConnectionTimeout(30000); 
    httpClientPolicy.setReceiveTimeout(60000); 

    conduit.setClient(httpClientPolicy); 

Получил нижеследующее исключение.

Exception in thread "main" java.lang.ClassCastException: org.apache.cxf.jaxrs.client.ClientProxyImpl cannot be cast to org.apache.cxf.frontend.ClientProxy 
at org.apache.cxf.frontend.ClientProxy.getClient(ClientProxy.java:120) 

Оцените любую помощь, чтобы получить эту работу.

Благодаря

ответ

0

Try изменения в:

<http-conf:conduit name="http://hostname.com/.*"> 

Чтобы увидеть, если он подобран таким образом. У Rest на самом деле нет понятия имен конечных точек и таких, как JAX-WS, поэтому он не может сравниться с этим.

+0

Это не помогло. Нашел пару таких экземпляров в списке рассылки cxf-user и, по-видимому, установил это программно. Попытка этого прямо сейчас, но смешение весенних и не-весенних версий - это боль и требует повторного факторинга вещей. Спасибо за ваш ответ. – domino

+0

Даниэль, попробовал программный подход, но я думаю, что я что-то упустил или он работает только с jax-ws, а не с jax-rs. Пожалуйста, дайте мне знать, если у вас есть предложения. Благодарю. – domino

+0

Обновлено оригинальное сообщение с более подробной информацией. – domino