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

Reply via email to