Hi Tom, I can't comment on the CXF/MTOM part, but I can say a bit about removing headers. You note that:
" I think the problem could have been in <removeHeaders pattern="CamelHttp*"/> because all the previous headers are gone and instead of them are different. But I haven't found a way how to remove only one of them and without it it doesn't forward the message. " Headers can be removed as followed: 1. Remove a single header Java DSL: .removeHeader("myHeader") XML DSL: <removeHeader name="myHeader"/> 2. Remove all headers Java DSL: .removeHeaders("*") XML DSL: <removeHeaders pattern="*"/> 3. Remove headers by a pattern Java DSL: .removeHeaders(" CamelHttp* ") XML DSL: <removeHeaders pattern="CamelHttp*"/> 4. Remove headers by pattern, but exclude a specific one Java DSL: .removeHeaders(" CamelHttp* ","CamelHttpResponseCode") XML DSL: <removeHeaders pattern="CamelHttp*" excludePattern="CamelHttpResponseCode"/> 5. Remove headers by pattern, but exclude some Java DSL: .removeHeaders(" Camel* ","CamelHttp*") XML DSL: <removeHeaders pattern="Camel*" excludePattern="CamelHttp*"/> Raymond On Tue, Oct 18, 2022 at 2:36 PM <lli...@email.cz> wrote: > Hi, > > I am trying to solve it for a very long time and I realy don't know what > to do next. > > I am creating new proxy for web services in Karaf 4.4.1 with Camel 3.18.1 > and cxf 3.5.3. And it works fine, but I have a problem with MTOM > attachments. For some reason it totally screw the message. I think the > problem could have been in <removeHeaders pattern="CamelHttp*"/> because > all the previous headers are gone and instead of them are different. But I > haven't found a way how to remove only one of them and without it it > doesn't forward the message. > Is here anyone who knows how make it work? > > Thanks in advance > > Tom > > - Here is my simplified blueprint: > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" > default-activation="lazy" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:camel="http://camel.apache.org/schema/blueprint" > xmlns:camelcxf="http://camel.apache.org/schema/blueprint/cxf" > xsi:schemaLocation=" > http://www.osgi.org/xmlns/blueprint/v1.0.0 > http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd > http://camel.apache.org/schema/blueprint > http://camel.apache.org/schema/blueprint/camel-blueprint.xsd > http://camel.apache.org/schema/blueprint/cxf > http://camel.apache.org/schema/blueprint/cxf/camel-cxf.xsd > "> > > <camelcxf:cxfEndpoint id="mtomTestEndpoint" > address="/test" > xmlns:tns=" > http://test.org/MtomTest" > > endpointName="tns:MtomTestServiceSoap" > > serviceName="tns:MtomTestService" > > wsdlURL="file:etc/wsdl/mtomtest.wsdl" > > > <camelcxf:properties> > <entry key="dataFormat" value="PAYLOAD" /> > <entry key="mtom-enabled" value="true" /> > </camelcxf:properties> > </camelcxf:cxfEndpoint> > > <camelContext id="mtomTestRoute" trace="false" xmlns=" > http://camel.apache.org/schema/blueprint"> > <route> > <from uri="cxf:bean:mtomTestEndpoint"/> > <removeHeaders pattern="CamelHttp*"/> > <to uri="http://localhost:8299?throwExceptionOnFailure=false > "/> > </route> > </camelContext> > </blueprint> > > - Here is wsdl: > <?xml version="1.0" encoding="utf-8"?> > <wsdl:definitions > xmlns:xs="http://www.w3.org/2001/XMLSchema" > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:tns="http://test.org/MtomTest" > xmlns:xmime="http://www.w3.org/2005/05/xmlmime" > targetNamespace="http://test.org/MtomTest" > > > <wsdl:types> > <xs:schema targetNamespace="http://test.org/MtomTest" > xmlns:xmime="http://www.w3.org/2005/05/xmlmime" > elementFormDefault="qualified"> > <xs:element name="MtomTest"> > <xs:complexType> > <xs:sequence> > <xs:element name="Content" type="xs:base64Binary" > xmime:expectedContentTypes="application/octet-stream" /> > </xs:sequence> > </xs:complexType> > </xs:element> > <xs:element name="MtomTestResponse"> > <xs:complexType> > <xs:sequence> > <xs:element name="testCheck" type="xs:integer" > minOccurs="0" /> > </xs:sequence> > </xs:complexType> > </xs:element> > </xs:schema> > </wsdl:types> > <wsdl:message name="MtomTestIn"> > <wsdl:part name="parameters" element="tns:MtomTest"/> > </wsdl:message> > <wsdl:message name="MtomTestOut"> > <wsdl:part name="parameters" element="tns:MtomTestResponse"/> > </wsdl:message> > <wsdl:portType name="MtomTestServiceSoap"> > <wsdl:operation name="MtomTest"> > <wsdl:input message="tns:MtomTestIn"/> > <wsdl:output message="tns:MtomTestOut"/> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name="MtomTestServiceSoap" > type="tns:MtomTestServiceSoap"> > <soap:binding style="document" transport=" > http://schemas.xmlsoap.org/soap/http"/> > <wsdl:operation name="MtomTest"> > <soap:operation soapAction=""/> > <wsdl:input> > <soap:body use="literal"/> > </wsdl:input> > <wsdl:output> > <soap:body use="literal"/> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > <wsdl:service name="MtomTestService"> > <wsdl:port name="MtomTestServiceSoap" > binding="tns:MtomTestServiceSoap"> > <soap:address location="http://localhost:8181/mtom-test"/> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > > - original header from soapUI: > POST / HTTP/1.1^M > Content-Type: multipart/related; type="application/xop+xml"; start="< > rootp...@soapui.org>"; start-info="text/xml"; > boundary="----=_Part_0_1885335651.1666069360756"^M > SOAPAction: ""^M > MIME-Version: 1.0^M > Content-Length: 1491^M > Host: localhost:8299^M > Connection: Keep-Alive^M > User-Agent: Apache-HttpClient/4.5.5 (Java/16.0.1)^M > ^M > ^M > ------=_Part_0_1885335651.1666069360756^M > Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"^M > Content-Transfer-Encoding: 8bit^M > Content-ID: <rootp...@soapui.org>^M > ^M > <soapenv:Envelope...... > > - forwarded header from Karaf: > POST / HTTP/1.1^M > MIME-Version: 1.0^M > operationName: MtomTest^M > operationNamespace: http://test.org/MtomTest^M > org.apache.cxf.headers.Header.list: > org.apache.cxf.binding.soap.SoapHeader@45e002f5^M > User-Agent: Apache-HttpClient/4.5.5 (Java/16.0.1)^M > Transfer-Encoding: chunked^M > Content-Type: application/xop+xml^M > Host: localhost:8299^M > Connection: Keep-Alive^M > Accept-Encoding: gzip,deflate^M > ^M > f6^M > <mto:MtomTest.... > > As you can see, even soapenv:Envelope is missing. >