camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From fs <mholla...@gmail.com>
Subject Re: Camel CXF - SOAP 1.1 vs SOAP 1.2
Date Wed, 05 Mar 2014 06:16:43 GMT
Ok, here are the missing code snippets

1. cxf-endpoint configuration in blueprint XML

    <cxf:cxfEndpoint id="foo"
        address="/foobar"
        serviceClass="foo.bar.FooBarPort">
        <cxf:properties>
            <entry key="dataFormat" value="MESSAGE" />
        </cxf:properties>
    </cxf:cxfEndpoint>

2. In the route we use the onException thing

     onException(Exception.class).
            process(new FaultProcessor());

3. And exception is set to exchange in a processor

public class FaultProcessor implements Processor {    
    @Override
    public void process(Exchange exchange) {
        exchange.setException(new RuntimeCamelException()));
    }
}

4. Finally here's the wsdl

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="foo"
    targetNamespace="http://foo.bar"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://foo.bar"
    xmlns:ns="http://foo.bar"
    xmlns:ele="foo.bar/xsd"
    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/">
    <types>
        <xsd:schema
            targetNamespace="http://foo.bar">
            <xsd:import namespace="foo.bar/xsd"
                schemaLocation="foo.xsd" />
        </xsd:schema>
    </types>
    <message name="FooRequest">
        <part name="parameters" element="ele:Foo" />
    </message>
    <message name="FooResponse">
        <part name="parameters" element="ele:Foo" />
    </message>
    <portType name="FooBarPort">
        <operation name="Foo">
            <input name="FooRequest"
                message="tns:FooRequest" />
            <output name="FooResponse"
                message="tns:FooResponse" />
        </operation>
    </portType>
    <binding name="FooBarPortBinding" type="tns:FooBarPort">
        <soap12:binding style="document"
            transport="http://www.w3.org/2003/05/soap/bindings/HTTP/" />
        <operation name="Foo">
            <soap12:operation />
            <input name="FooRequest">
                <soap12:body use="literal" />
            </input>
            <output name="FooResponse">
                <soap12:body use="literal" />
            </output>
        </operation>
    </binding>
    <service name="FooBarService">
        <port name="FooBarPortBindingPort" binding="tns:FooBarPortBinding">
            <soap12:address
                location="http://localhost:${HttpDefaultPort}/service" />
        </port>
    </service>
</definitions>


We have used cxf-codegen-plugin (wsdl2java) for code generation.





--
View this message in context: http://camel.465427.n5.nabble.com/Camel-CXF-SOAP-1-1-vs-SOAP-1-2-tp5748285p5748314.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Mime
View raw message