Hi,

Have you tried PAYLOAD mode?

I don't know which JBOSS FUSE version will contain Camel 2.17 (that one is 
pretty new). Anyway, I noticed yesterday that there is a bug in the 2.17.0 
MIME-Multipart decoder that will prevent your multipart from being processed 
(because the attachment doesn't have a filename). I am just in the process of 
fixing that bug...

Best regards
Stephan

-----Original Message-----
From: ekta.v.wadhw...@accenture.com [mailto:ekta.v.wadhw...@accenture.com] 
Sent: Freitag, 8. April 2016 09:58
To: users@camel.apache.org; d...@camel.apache.org
Subject: Re: Apache camel mime-multipart usage and examples?


Stephan,


I am using JBOSS FUSE version  8.1.0.GA which supports maximum camel core 
version : 2.15.0.

So i would not be able to use 2.17.0.

To your point on CXF-endpoint, yes i am using CXF endpoint to invoke a 
webservice which provides SOAP response with attachments. However using Spring 
XML-DSL I can only invoke webservice using dataFormat as Message. My 
configuration looks like below:

<cxf:cxfEndpoint id="uploadFileToUcmEndpoint"
address="https://fin-aufsn4x0cba.oracleoutsourcing.com:443/publicFinancialCommonErpIntegration/ErpIntegrationService";<https://fin-aufsn4x0cba.oracleoutsourcing.com/publicFinancialCommonErpIntegration/ErpIntegrationService%22>
wsdlURL="src/main/resources/ERP1.wsdl"
serviceClass="com.oracle.xmlns.apps.financials.commonmodules.shared.model.erpintegrationservice.ErpIntegrationService"
xmlns:ssp="http://xmlns.oracle.com/oxp/service/v2";><http://xmlns.oracle.com/oxp/service/v2%22%3E>
<cxf:properties>
<entry key="dataFormat" value="MESSAGE" />
</cxf:properties>
</cxf:cxfEndpoint>


(1) dataFormat=Message:-  doesnot provides raw response and DOESNOT 
understand/automatically process the SOAPEnvelopeResponse + Attachments. hence 
i have to process it manually somehow. 1 option i found is using 
mime-multiparts dataformat. but couldnt try ttest because jboss fuse isnt 
supporting camel 2.17.0

(2) dataFormat=CXF_MEssage:- This DOES automatic parsing of 
SOAPEnvelopeREsponse + Attachments.

However i couldnt even get the response from webservice using this dataFormat.  
I ended up with following error using CXF_MEssage:


CXF configuration:
<cxf:cxfEndpoint id="uploadFileToUcmEndpoint"
address="https://fin-aufsn4x0cba.oracleoutsourcing.com:443/publicFinancialCommonErpIntegration/ErpIntegrationService";<https://fin-aufsn4x0cba.oracleoutsourcing.com/publicFinancialCommonErpIntegration/ErpIntegrationService%22>
wsdlURL="src/main/resources/ERP1.wsdl"
serviceClass="com.oracle.xmlns.apps.financials.commonmodules.shared.model.erpintegrationservice.ErpIntegrationService"
xmlns:ssp="http://xmlns.oracle.com/oxp/service/v2";><http://xmlns.oracle.com/oxp/service/v2%22%3E>
<cxf:properties>
<entry key="dataFormat" value="CXF_MESSAGE" />
</cxf:properties>
</cxf:cxfEndpoint>

Error with CXF_MESSAGE:
In this above confguration if i change dataformat from Message to CXF_MESSAGE, 
i am getting below error:
default-workqueue-1] PhaseInterceptorChain          WARN  Interceptor for 
{http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/}ErpIntegrationServiceService#{http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/}uploadFileToUcm
 has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Couldn't find MIME boundary: 
------=_Part_3434_428158164.1459969427807
        at 
org.apache.cxf.interceptor.AttachmentInInterceptor.handleMessage(AttachmentInInterceptor.java:60)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
        at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:784)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1644)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1155)
        at 
org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:428)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at 
org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:353)
        at java.lang.Thread.run(Thread.java:745)



Possible reason that i suspect is:

The webservice responds in MULTIPARTS(SOAPENvelope in 1 part + Attachments in 
2nd part) for which i may have to configure serviceInterfaceStrategy as 
specified in this link: http://camel.apache.org/soap.html

Again for this there is no online help/guide how to configure 
serviceInterfaceStrategy. hence i cudnt succeed here as well.


I suspect, Had my webservice responded in plain xml with no Multipart content, 
CXF_MEssage wud hv worked without the above error.

Problem here is with Multiparts. hence i chose to use raw option(i.e, 
dataformat=Message).

(3) What next?

-> Can you help with the proper complete example of

- Configuring serviceInterfaceStrategy?

- OR processing Manually the Multiparts response using some apache camel 
component?

- OR do u know if some version of jboss fuse supports camel core of 2.17.0 so 
that i can install that and try use mime-multipart

- OR anything else that u think could help me with a simple requirement: 
Processing SOAP Multiparts response using APache CXF or any other APAche camel 
components


Thanks in advance.

Ekta

-----Original Message-----

Hi,

Which camel version are you using? MIME-Multipart is only available starting
Camel 2.17.0.

I am not 100% sure, but your response looks somewhat like SOAP with attachments
or MTOM. If you are using some kind of Camel-CXF endpoint for receiving it, the
endpoint might parse it for you.

Best regards
Stephan

-----Original Message-----



________________________________
From: Wadhwani, Ekta V.
Sent: Thursday, April 7, 2016 12:18 PM
To: users@camel.apache.org; d...@camel.apache.org
Subject: Apache camel mime-multipart usage and examples?


Hi Team,

Jboss Fuse Studio : Version: 8.1.0.GA
Jdk version: 1.8.0_73
Using XML DSL

Scenario:
Webservice SOAP response is received in multiparts as below:
response : ------=_Part_4706_434840889.1459343688908
Content-Type: application/xop+xml;charset=UTF-8;type="text/xml"
Content-Transfer-Encoding: 8bit
Content-ID: <e0946c95-9d0d-40ba-8416-0528bfcb4aa9>

<?xml version="1.0" encoding="UTF-8" ?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:wsa="http://www.w3.org/2005/08/addressing";><env:Header><wsa:Action>
http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService//ErpIntegrationService/downloadESSJobExecutionDetailsResponse</wsa:Action><wsa:MessageID>urn:uuid:82d7d264-ef7f-41da-8d51-79e940413b13</wsa:MessageID></env:Header><env:Body><ns0:downloadESSJobExecutionDetailsResponse
xmlns:ns0="
http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/types/";><ns2:result
xmlns:ns2="
http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/types/";
xmlns:ns1="http://xmlns.oracle.com/adf/svc/types/"; xmlns:ns0="
http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:type="ns0:DocumentDetails"><ns0:Content><xop:Include xmlns:xop="
http://www.w3.org/2004/08/xop/include";
href="cid:51e0b71c-160b-4921-a8a7-8fe7f87ccc3b"/></ns0:Content><ns0:FileName
xsi:nil="true"/><ns0:ContentType>zip</ns0:ContentType><ns0:DocumentTitle>ESS_L_157463</ns0:DocumentTitle><ns0:DocumentAuthor>G4S.Integration.User</ns0:DocumentAuthor><ns0:DocumentSecurityGroup>Attachments</ns0:DocumentSecurityGroup><ns0:DocumentAccount
xsi:nil="true"/><ns0:DocumentName>157463.zip</ns0:DocumentName><ns0:DocumentId
xsi:nil="true"/></ns2:result></ns0:downloadESSJobExecutionDetailsResponse></env:Body></env:Envelope>
------=_Part_4706_434840889.1459343688908
Content-Transfer-Encoding: binary
Content-ID: <51e0b71c-160b-4921-a8a7-8fe7f87ccc3b>

PK157463.log?XKS?8??W??????jTL?  .. blah blah some binary content
------=_Part_4706_434840889.1459343688908--


Can i use apache camel mime-multipart to process this soap response
http://camel.apache.org/mime-multipart.html

As mentioned in this document, i have included the dependency. however i am not 
able to declare this dataFormat in <dataFormats> element.
Can you please help guide with some example using" XML DSL" ? There is no 
example available online.


Thanks,

Ekta

________________________________

This message is for the designated recipient only and may contain privileged, 
proprietary, or otherwise confidential information. If you have received it in 
error, please notify the sender immediately and delete the original. Any other 
use of the e-mail by you is prohibited. Where allowed by local law, electronic 
communications with Accenture and its affiliates, including e-mail and instant 
messaging (including content), may be scanned by our systems for the purposes 
of information security and assessment of internal compliance with Accenture 
policy.
______________________________________________________________________________________

www.accenture.com

Reply via email to