camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oliver Koch <o.k...@synoa.de>
Subject Camel-CXF doesn't add soap:Header to Request when run inside Apache Karaf
Date Tue, 12 Jul 2016 10:36:58 GMT
Hi,

I have some problems by calling a Webservice with camel-cxf running in
Apache Karaf! I've posted my question already on Stackoverflow, so her is
the link 
http://stackoverflow.com/questions/38308084/camel-cxf-doesnt-add-soapheader-to-request-when-run-inside-apache-karaf
<http://stackoverflow.com/questions/38308084/camel-cxf-doesnt-add-soapheader-to-request-when-run-inside-apache-karaf>

.

For documentation reasons I post the question from Stackoverflow in
subsequent:

Thank you in advance!

-----------

I'm using Camel (2.16.3) to call a Webservice (see WSDL below). If I run my
Route Standalone with the *camel:run* maven command, everything works fine
and the Request is like so:

    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
        <soap:Header>
            <Action
xmlns="http://www.w3.org/2005/08/addressing">http://tempuri.org/OutboundItemTransferIISWebService/OutboundItemTransferIISWebService/ItemTransfer</Action>
            <MessageID
xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:17fba6c9-daa8-41cb-a5a5-2806165d705b</MessageID>
            <To
xmlns="http://www.w3.org/2005/08/addressing">http://localhost:8765/wc3/entw/OutboundItemTransferIISWebService.svc</To>
            <ReplyTo xmlns="http://www.w3.org/2005/08/addressing">
               
<Address>http://www.w3.org/2005/08/addressing/anonymous</Address>
            </ReplyTo>
        </soap:Header>
        <soap:Body>
            <ns2:ItemTransfer
xmlns="urn:microsoft-dynamics-nav/xmlports/x60780"
xmlns:ns2="http://tempuri.org/OutboundItemTransferIISWebService/"><ns2:p_OutboundItem/>
                <ns2:p_ItemFilter></ns2:p_ItemFilter>
                <ns2:p_ItemMaxFilter>100</ns2:p_ItemMaxFilter>
            </ns2:ItemTransfer>
        </soap:Body>
    </soap:Envelope>

But if I deploy my Project to a Karaf (4.0.4) Installation and trigger the
Request, the soap:Header is missing:

    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
        <soap:Body>
            <ns2:ItemTransfer
xmlns="urn:microsoft-dynamics-nav/xmlports/x60780"
xmlns:ns2="http://tempuri.org/OutboundItemTransferIISWebService/"><ns2:p_OutboundItem/>
                <ns2:p_ItemFilter></ns2:p_ItemFilter>
                <ns2:p_ItemMaxFilter>100</ns2:p_ItemMaxFilter>
            </ns2 :ItemTransfer>
        </soap:Body>
    </soap:Envelope>

Because for the Server, which is called, the Header is required I get an
SOAP Fault back.

----------

**Attachments**

Following the Spring configuration which defines the CXF Endpoint:

	<cxf:cxfEndpoint id="itemTransfer"
		address="${navision.ws.base.url}/OutboundItemTransferIISWebService.svc"
		wsdlURL="wsdl/OutboundItemTransferIISWebService.wsdl"
	
serviceClass="org.tempuri.outbounditemtransferiiswebservice.OutboundItemTransferIISWebService"
		endpointName="ns:WSHttpBinding_OutboundItemTransferIISWebService"
        serviceName="ns:OutboundItemTransferIISWebService"
        xmlns:ns="http://tempuri.org/OutboundItemTransferIISWebService/"
		loggingFeatureEnabled="true">
	</cxf:cxfEndpoint>

and the Route (in Java DSL) which trigger the request:

    from(ACTIVEMQ_UPDATE_ITEMS).routeId("Read all Items from the Webservice
into MongoDB")
        .log(LoggingLevel.INFO, logger, "Read the next
{{navision.ws.chunk.size}} Items! Filter: '${body}'")
       
.setHeader(Masterdata.HEADER_CHUNK_SIZE).simple("{{navision.ws.chunk.size}}")
        .bean(InitialItemImport.class, "createItemTransferRequest")
        .to("cxf:bean:itemTransfer?dataFormat=POJO")
        .bean(InitialItemImport.class, "itemTransferResponseToList")
        .split(body()).parallelProcessing()
            .bean(InitialItemImport.class, "convertItemToUpsert")
           
.to("mongodb:mongo?database={{mongo.database}}&collection=articles&operation=update")
        .end()
        .choice()
            .when(method(InitialItemImport.class, "shouldTriggerNext"))
                .bean(InitialItemImport.class, "createNextFilter")
                .to(ACTIVEMQ_UPDATE_ITEMS)
            .otherwise()
                .log(LoggingLevel.INFO, logger, "Finished Full-Update of
Items")
        .end();

and the WSDL which defines the Service:

    <?xml version="1.0" encoding="utf-8"?>
    <wsdl:definitions name="OutboundItemTransferIISWebService"
    	targetNamespace="http://tempuri.org/OutboundItemTransferIISWebService/"
    	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"
    	xmlns:wsa10="http://www.w3.org/2005/08/addressing"
xmlns:tns="http://tempuri.org/OutboundItemTransferIISWebService/"
    	xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    	xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy"
    	xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract"
    	xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
    	xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
    	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    	xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
    	<wsp:Policy
wsu:Id="WSHttpBinding_OutboundItemTransferIISWebService_policy">
    		<wsp:ExactlyOne>
    			<wsp:All>
    				<wsaw:UsingAddressing />
    			</wsp:All>
    		</wsp:ExactlyOne>
    	</wsp:Policy>
    	<wsdl:types>
    		<xsd:schema elementFormDefault="qualified"
    		
targetNamespace="http://tempuri.org/OutboundItemTransferIISWebService/">
    			<xsd:element name="ItemTransfer">
    				<xsd:complexType>
    					<xsd:sequence>
    						<xsd:element minOccurs="0" maxOccurs="1" name="p_OutboundItem"
    							type="q1:ItemData"
xmlns:q1="urn:microsoft-dynamics-nav/xmlports/x60780" />
    						<xsd:element minOccurs="0" maxOccurs="1" name="p_ItemFilter"
    							type="xsd:string" />
    						<xsd:element minOccurs="1" maxOccurs="1" name="p_ItemMaxFilter"
    							type="xsd:int" />
    					</xsd:sequence>
    				</xsd:complexType>
    			</xsd:element>
    			<xsd:element name="ItemTransferResponse">
    				<xsd:complexType>
    					<xsd:sequence>
    						<xsd:element minOccurs="0" maxOccurs="1"
    							name="ItemTransferResult" type="q2:ItemData"
    							xmlns:q2="urn:microsoft-dynamics-nav/xmlports/x60780" />
    					</xsd:sequence>
    				</xsd:complexType>
    			</xsd:element>
    		</xsd:schema>
    		<xsd:schema elementFormDefault="qualified"
    			targetNamespace="urn:microsoft-dynamics-nav/xmlports/x60780">
    			<xsd:complexType name="ItemData" mixed="true">
    				<xsd:sequence>
    					<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item"
    						type="q3:Item"
xmlns:q3="urn:microsoft-dynamics-nav/xmlports/x60780" />
    				</xsd:sequence>
    			</xsd:complexType>
    			<xsd:complexType name="Item">
    				<xsd:sequence>
    					<xsd:element minOccurs="0" maxOccurs="1" name="No"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="No_2"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Description"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Search_Description" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Description_2"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Base_Unit_of_Measure" type="xsd:string" />
    					<xsd:element minOccurs="1" maxOccurs="1"
    						name="Price_Unit_Conversion" type="xsd:int" />
    					<xsd:element minOccurs="1" maxOccurs="1" name="Unit_Price"
    						type="xsd:decimal" />
    					<xsd:element minOccurs="1" maxOccurs="1" name="Duty_Due_Percent"
    						type="xsd:decimal" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Duty_Code"
    						type="xsd:string" />
    					<xsd:element minOccurs="1" maxOccurs="1" name="Gross_Weight"
    						type="xsd:decimal" />
    					<xsd:element minOccurs="1" maxOccurs="1" name="Net_Weight"
    						type="xsd:decimal" />
    					<xsd:element minOccurs="1" maxOccurs="1" name="Unit_Volume"
    						type="xsd:decimal" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Freight_Type"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Tariff_No"
    						type="xsd:string" />
    					<xsd:element minOccurs="1" maxOccurs="1"
    						name="Duty_Unit_Conversion" type="xsd:decimal" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Country_Region_Purchased_Code" type="xsd:string" />
    					<xsd:element minOccurs="1" maxOccurs="1" name="Blocked"
    						type="xsd:boolean" />
    					<xsd:element minOccurs="1" maxOccurs="1"
    						name="Price_Includes_VAT" type="xsd:boolean" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="VAT_Bus_Posting_Gr_Price" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Gen_Prod_Posting_Group" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Country_Region_of_Origin_Code" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Tax_Group_Code"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="VAT_Prod_Posting_Group" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Manufacturer_Code" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Item_Category_Code" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Product_Group_Code" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Expiration_Calculation" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Common_Item_No"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Last_Date_Modified" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Recency_From_Date" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Recency_To_Date"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Status_Code"
    						type="xsd:string" />
    					<xsd:element minOccurs="1" maxOccurs="1"
    						name="Rock_Bottom_Price" type="xsd:boolean" />
    					<xsd:element minOccurs="1" maxOccurs="1" name="Buy_Hit"
    						type="xsd:boolean" />
    					<xsd:element minOccurs="1" maxOccurs="1" name="Test_Winner"
    						type="xsd:boolean" />
    					<xsd:element minOccurs="1" maxOccurs="1" name="Inventory"
    						type="xsd:decimal" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Item_Status_Display_Text" type="xsd:string" />
    					<xsd:element minOccurs="1" maxOccurs="1" name="Not_Homologated"
    						type="xsd:boolean" />
    					<xsd:element minOccurs="1" maxOccurs="1" name="Last_Direct_Cost"
    						type="xsd:decimal" />
    					<xsd:element minOccurs="1" maxOccurs="1" name="Unit_List_Price"
    						type="xsd:decimal" />
    					<xsd:element minOccurs="0" maxOccurs="unbounded" name="ItemVariant"
    						type="q4:ItemVariant"
xmlns:q4="urn:microsoft-dynamics-nav/xmlports/x60780" />
    					<xsd:element minOccurs="0" maxOccurs="unbounded" name="ItemVendor"
    						type="q5:ItemVendor"
xmlns:q5="urn:microsoft-dynamics-nav/xmlports/x60780" />
    					<xsd:element minOccurs="0" maxOccurs="unbounded"
name="ItemSalesPrice"
    						type="q6:ItemSalesPrice"
xmlns:q6="urn:microsoft-dynamics-nav/xmlports/x60780" />
    					<xsd:element minOccurs="0" maxOccurs="unbounded"
name="ItemTranslation"
    						type="q7:ItemTranslation"
xmlns:q7="urn:microsoft-dynamics-nav/xmlports/x60780" />
    					<xsd:element minOccurs="0" maxOccurs="unbounded"
    						name="ItemDistributionChannel" type="q8:ItemDistributionChannel"
    						xmlns:q8="urn:microsoft-dynamics-nav/xmlports/x60780" />
    				</xsd:sequence>
    			</xsd:complexType>
    			<xsd:complexType name="ItemVariant">
    				<xsd:sequence>
    					<xsd:element minOccurs="0" maxOccurs="1" name="Code"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Description"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Description_2"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Variant_Promo"
    						type="xsd:string" />
    					<xsd:element minOccurs="1" maxOccurs="1"
    						name="Variant_Inventory" type="xsd:decimal" />
    				</xsd:sequence>
    			</xsd:complexType>
    			<xsd:complexType name="ItemVendor">
    				<xsd:sequence>
    					<xsd:element minOccurs="0" maxOccurs="1" name="Vendor_No"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Lead_Time_Calculation" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Vendor_Item_No"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Variant_Code"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" default="false"
    						name="Primary_Vendor" type="xsd:boolean" />
    				</xsd:sequence>
    			</xsd:complexType>
    			<xsd:complexType name="ItemSalesPrice">
    				<xsd:sequence>
    					<xsd:element minOccurs="0" maxOccurs="1" name="Sales_Type"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Sales_Code"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Starting_Date"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Currency_Code"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Variant_Code"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Unit_Of_Measure_Code" type="xsd:string" />
    					<xsd:element minOccurs="1" maxOccurs="1" name="Minimum_Quantity"
    						type="xsd:decimal" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Ending_Date"
    						type="xsd:string" />
    					<xsd:element minOccurs="1" maxOccurs="1" name="Unit_Price"
    						type="xsd:decimal" />
    					<xsd:element minOccurs="1" maxOccurs="1"
    						name="Price_Includes_VAT" type="xsd:boolean" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="VAT_Bus_Posting_Grp_Price" type="xsd:string" />
    					<xsd:element minOccurs="1" maxOccurs="1" name="Action_Price"
    						type="xsd:boolean" />
    				</xsd:sequence>
    			</xsd:complexType>
    			<xsd:complexType name="ItemTranslation">
    				<xsd:sequence>
    					<xsd:element minOccurs="0" maxOccurs="1" name="Variant_Code"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Language_Code"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Description"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Description_2"
    						type="xsd:string" />
    				</xsd:sequence>
    			</xsd:complexType>
    			<xsd:complexType name="ItemDistributionChannel">
    				<xsd:sequence>
    					<xsd:element minOccurs="0" maxOccurs="1" name="Item_No"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Variant_Code"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Responsibility_Center" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Start_Date"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Distribution_Channel_Code" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Item_Description"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Item_Description_2" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Language_Code"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Promo_From_Date"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1" name="Promo_Until_Date"
    						type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Recency_From_Date_Distr" type="xsd:string" />
    					<xsd:element minOccurs="0" maxOccurs="1"
    						name="Recency_To_Date_Distr" type="xsd:string" />
    				</xsd:sequence>
    			</xsd:complexType>
    		</xsd:schema>
    	</wsdl:types>
    	<wsdl:message
    		name="OutboundItemTransferIISWebService_ItemTransfer_InputMessage">
    		<wsdl:part name="parameters" element="tns:ItemTransfer" />
    	</wsdl:message>
    	<wsdl:message
    		name="OutboundItemTransferIISWebService_ItemTransfer_OutputMessage">
    		<wsdl:part name="parameters" element="tns:ItemTransferResponse" />
    	</wsdl:message>
    	<wsdl:portType name="OutboundItemTransferIISWebService">
    		<wsdl:operation name="ItemTransfer">
    			<wsdl:input
    			
wsaw:Action="http://tempuri.org/OutboundItemTransferIISWebService/OutboundItemTransferIISWebService/ItemTransfer"
    			
message="tns:OutboundItemTransferIISWebService_ItemTransfer_InputMessage" />
    			<wsdl:output
    			
wsaw:Action="http://tempuri.org/OutboundItemTransferIISWebService/OutboundItemTransferIISWebService/ItemTransferResponse"
    			
message="tns:OutboundItemTransferIISWebService_ItemTransfer_OutputMessage"
/>
    		</wsdl:operation>
    	</wsdl:portType>
    	<wsdl:binding name="WSHttpBinding_OutboundItemTransferIISWebService"
    		type="tns:OutboundItemTransferIISWebService">
    		<wsp:PolicyReference
    			URI="#WSHttpBinding_OutboundItemTransferIISWebService_policy" />
    		<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
    		<wsdl:operation name="ItemTransfer">
    			<soap12:operation
    			
soapAction="http://tempuri.org/OutboundItemTransferIISWebService/OutboundItemTransferIISWebService/ItemTransfer"
    				style="document" />
    			<wsdl:input>
    				<soap12:body use="literal" />
    			</wsdl:input>
    			<wsdl:output>
    				<soap12:body use="literal" />
    			</wsdl:output>
    		</wsdl:operation>
    	</wsdl:binding>
    	<wsdl:service name="OutboundItemTransferIISWebService">
    		<wsdl:port name="WSHttpBinding_OutboundItemTransferIISWebService"
    			binding="tns:WSHttpBinding_OutboundItemTransferIISWebService">
    			<soap12:address
    			
location="http://mdnmt2.ms.local/wc3/entw/OutboundItemTransferIISWebService.svc"
/>
    			<wsa10:EndpointReference>
    			
<wsa10:Address>http://mdnmt2.ms.local/wc3/entw/OutboundItemTransferIISWebService.svc</wsa10:Address>
    			</wsa10:EndpointReference>
    		</wsdl:port>
    	</wsdl:service>
    </wsdl:definitions>



--
View this message in context: http://camel.465427.n5.nabble.com/Camel-CXF-doesn-t-add-soap-Header-to-Request-when-run-inside-Apache-Karaf-tp5785042.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Mime
View raw message