Uploaded image for project: 'CXF Distributed OSGi (Retired)'
  1. CXF Distributed OSGi (Retired)
  2. DOSGI-124

ReceiveTimeout not configurable while using cxf-rest service in OSGI

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.0.0
    • common
    • None
    • cxf-dosgi-ri-singlebundle-distribution-1.3.1.jar deployed in Karaf

    • Unknown

    Description

      I am using CXF-REST services with OSGI (Karaf) by defining the webservice in remote-services.xml file.
      The CXF-RS service I am using is taking more than 60 seconds and due to that I am getting following error.
      aused by: java.net.SocketTimeoutException: SocketTimeoutException invoking http://localhost:9000/nexgen/conversionService/convertClassicPolicy: Read timed out
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
      at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1458)
      at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1443)
      at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
      at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:659)
      at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
      ... 7 more
      Caused by: java.net.SocketTimeoutException: Read timed out
      at java.net.SocketInputStream.socketRead0(Native Method)
      at java.net.SocketInputStream.read(SocketInputStream.java:129)
      at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
      at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
      at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
      at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687)
      at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
      at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1072)
      at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
      at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1569)
      at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1521)
      at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1429)

      I am not able to define ReadTimeout for CXF-Rest service defined following way in OSGI as remote-services.xml.

      <?xml version="1.0" encoding="UTF-8"?>
      <endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
      <endpoint-description>
      <property name="objectClass">
      <array>
      <value>com.coverall.mic.rest.policy.service.PCTUploadService</value>
      </array>
      </property>
      <property name="endpoint.id">http://synpuncvral-05.synechron.com/mic/rest-services/restconversion</property>
      <property name="org.apache.cxf.rs.address" value="http://synpuncvral-05.synechron.com/mic/rest-services/restconversion" />
      <property name="service.imported.configs">org.apache.cxf.rs</property>
      <property name="org.apache.cxf.rs.out.interceptors">com.coverall.platform.core.context.cxf.interceptor.RequestContextOutInterceptor</property>
      </endpoint-description>
      </endpoint-descriptions>

      I also tried defining http-conduit by adding following blueprint.xml in same bundle.
      <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
      xmlns:cxf="http://cxf.apache.org/blueprint/core" xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs"
      xmlns:jaxws="http://cxf.apache.org/blueprint/jaxws"
      xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
      xsi:schemaLocation="
      http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
      http://www.osgi.org/xmlns/blueprint-ext/v1.1.0 https://svn.apache.org/repos/asf/aries/tags/blueprint-0.3.1/blueprint-core/src/main/resources/org/apache/aries/blueprint/ext/blueprint-ext.xsd
      http://cxf.apache.org/blueprint/jaxws http://cxf.apache.org/schemas/blueprint/jaxws.xsd
      http://cxf.apache.org/blueprint/jaxrs http://cxf.apache.org/schemas/blueprint/jaxrs.xsd
      http://cxf.apache.org/blueprint/core http://cxf.apache.org/schemas/blueprint/core.xsd
      http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd
      http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd
      http://cxf.apache.org/schemas/configuration/http-conf.xsd
      ">
      <http-conf:conduit name="http://service.policy.rest.mic.coverall.com}PCTUploadService.http-conduit">
      <http-conf:client ReceiveTimeout="600000" ConnectionTimeout="30000"/>
      </http-conf:conduit>
      </blueprint>

      How can we provide ReceiveTimeout to cxf-rs webservice used in osgi?

      Attachments

        Activity

          People

            cschneider Christian Schneider
            npatel@cover-all.com Nilesh Patel
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: