camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <ekta.v.wadhw...@accenture.com>
Subject Re: Apache camel mime-multipart usage and examples?
Date Fri, 08 Apr 2016 07:58:17 GMT

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; dev@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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message