Hi

Thanks for sharing the solution for this problem.

Did you find this information on a link to Apache CXF or someplace
else? I ask because we could maybe add a section to the camel-cxf doc
page talking about this and with a link to more details at Apache CXF.

On Sun, May 2, 2021 at 8:34 AM SRIKANT MVS <srikant....@gmail.com> wrote:
>
> Hi All,
> I was able to fix this issue by passing the below parameters as system
> properties to my camel springboot application.
> -Dorg.apache.cxf.io.CachedOutputStream.Threshold=256000
> -Dorg.apache.cxf.io.CachedOutputStream.OutputDirectory=/opt/application/logs
>
> And I removed the <cxf:bus> xml tag from the spring-config.xml file.
>
> -Regards
> Srikant  Mantha
>
> ---------- Forwarded message ---------
> From: SRIKANT MVS <srikant....@gmail.com>
> Date: Wed, Apr 28, 2021 at 7:18 PM
> Subject: Unable to set CXF CachedOutputStream.Threshold
> To: <users@camel.apache.org>
>
>
> Hi, I am using camel-cxf and have exposed soap service over HTTP using
> cxfEndpoint. There are few requests that are getting logged into the /tmp
> folder as the size is great than 64K-128K.
> I want to increase the memory size greater than 128K so that the request
> does not gets saved in the /tmp folder.
>
>
>
> Below is my spring-config.xml where I am creating the camel-cxf bus object.
> This is the default bus object when I verified after looking into the
> source code of  io.apache.cxf.io.CachedOutputStream.java class.
>
> <*bean **class*
> ="org.apache.camel.component.cxf.transport.CamelTransportFactory">
>   <*property **name*="bus" *ref*="cxf" />
>   <*property **name*="transportIds">
>     <*list*>
>       <*value*>http://cxf.apache.org/transports/camel</*value*>
>     </*list*>
>   </*property*>
>   <*property **name*="checkException" *value*="true"></*property*>
> </*bean*>
>
>
>
> I am including the cxfEndpoints in my spring-config.xml file.
>
> <*import **resource*="endpoints/TestEndpoint.xml" />
>
>
>
> <*cxf**:cxfEndpoint **id*="cXFTestHttp"
>   *address*="/TestService/TestServiceName"
>   *loggingFeatureEnabled*="true" *endpointName*="a:***SOAPPort"
>   *wsdlURL*="META-INF/wsdl/TestService/****.wsdl"
>   *serviceName*="a:TestService"
>   *serviceClass*="com.example.***"
>   *xmlns:**a*="http://test***";>
>   <*cxf**:properties*>
>     <*entry **key*="schema-validation-enabled"
> *value*="${schema.validation.enabled}" />
>     <!-- set to 1MB, The threshold value in bytes to switch from
> memory to file caching -->
>     <*entry **key*="org.apache.cxf.io.CachedOutputStream.Threshold"
> *value*="256000"/>
>     <!-- set to 100MB The data size in bytes to limit the maximum data
> size to be cached -->
>     <*entry **key*="org.apache.cxf.io.CachedOutputStream.MaxSize"
> *value*="10000000"/>
>     <!-- The directory name for storing the temporary files -->
>     <*entry **key*="bus.io.CachedOutputStream.OutputDirectory" 
> *value*="/tmp"/>
>   </*cxf**:properties*>
>   <*cxf**:inInterceptors*>
>      <*ref **bean*="ecsLoggingInInterceptor" />
>   </*cxf**:inInterceptors*>
>   <*cxf**:outInterceptors*>
>      <*ref **bean*="ecsLoggingOutInterceptor" />
>   </*cxf**:outInterceptors*>
> </*cxf**:cxfEndpoint*>
>
>
>
> These properties are not getting picked up.
>
>
>
> I also tried adding <cxf:bus> and its properties, but the xml throw
> exception
>
>
>
> <*cxf**:bus **id*="cxf">
>   <*cxf**:properties*>
>     <*entry **key*="org.apache.cxf.io.CachedOutputStream.Threshold"
> *value*="256000" />
>     <*entry **key*="org.apache.cxf.io.CachedOutputStream.OutputDirectory"
> *value*="/tmp" />
>   </*cxf**:properties*>
> </*cxf**:bus*>
>
>
>
> Caused by:
> org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line
> 70 in XML document from file [*****] is invalid;
> nested exception is org.xml.sax.SAXParseException; lineNumber: 70;
> columnNumber: 21; cvc-complex-type.2.4.c: The matching wildcard is strict,
> but no declaration can be found for element 'cxf:bus'.
>
>                 at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:402)
> ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
>
>                 at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:338)
> ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
>
>                 at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
> ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
>
>                 at
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
> ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
>
>                 at
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:224)
> ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
>
>                 at
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:255)
> ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
>
>                 ... 30 more
>
> Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The
> matching wildcard is strict, but no declaration can be found for element
> 'cxf:bus'.
>
>
>
> What am I missing here. Where should I add these properties effectively ?
> Any help appreciated. I am using camel version 3.4.5 and cxf version is
> 3.3.6.
>
>
>
>  -Regards
>
> Srikant Mantha



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to