How to format a List correctly in CXF Response ?

Solution Unverified - Updated -

Issue

  • User is using CXF cxf:cxfEndpoint component for service invocation. User response object contains List of error data which is not getting marshaled correctly in XML response:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns1:sfdcAccountGetResponse xmlns:ns1="http://xxx.yyy.zzz.com/">
         <ns2:return xmlns:ns2="http://xxx.yyy.zzz.com/">
            <status>Failure</status>
            <irinaErrorList>
               <errorMessage>MALFORMED_ID: bad id 001S000000hJ@NLc</errorMessage>
               <errorLevel>Error</errorLevel>
               <errorComponent>salesforceIntegration</errorComponent>
               <errorCode>7000</errorCode>
            </irinaErrorList>
            <irinaErrorList>
               <errorMessage>MALFORMED_ID: bad id 001S000000hJ@NLc</errorMessage>
               <errorLevel>Error</errorLevel>
               <errorComponent>salesforceIntegration</errorComponent>
               <errorCode>7000</errorCode>
            </irinaErrorList>
         </ns2:return>
      </ns1:sfdcAccountGetResponse>
   </soap:Body>
</soap:Envelope>
  • Expected result is
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns1:sfdcAccountGetResponse xmlns:ns1="http://xxx.yyy.zzz.com/">
         <ns2:return xmlns:ns2="http://xxx.yyy.zzz.com/">
            <status>Failure</status>
            <irinaErrorList>
             <esbErrorData>
               <errorMessage>MALFORMED_ID: bad id 001S000000hJ@NLc</errorMessage>
               <errorLevel>Error</errorLevel>
               <errorComponent>salesforceIntegration</errorComponent>
               <errorCode>7000</errorCode>
             </esbErrorData>
             <esbErrorData>

               <errorMessage>MALFORMED_ID: bad id 001S000000hJ@NLc</errorMessage>
               <errorLevel>Error</errorLevel>
               <errorComponent>salesforceIntegration</errorComponent>
               <errorCode>7000</errorCode>
             </esbErrorData>
            </irinaErrorList>
         </ns2:return>
      </ns1:sfdcAccountGetResponse>
   </soap:Body>
</soap:Envelope>
  • CXF component configuration
<cxf:cxfEndpoint id="salesforceEndpoint" address="/salesforce/" serviceClass="xxx.yyy.zzz.SalesforceService" >
    <cxf:properties>
            <entry key="faultStackTraceEnabled" value="true" />
            <entry key="loggingFeatureEnabled" value="true" />
            <entry key="wrapped" value="true" />
            <entry key="dataFormat" value="POJO"/>
        </cxf:properties>
</cxf:cxfEndpoint>

Environment

  • Red Hat JBoss Fuse
    • 6.1.0

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content