I am not still sure what you mean by using the dispatch API in camel.

Willem already answered to your question and I am adding a few info.

The actual dispatching part (i.e., sending out a generic message) is
there in Camel. The message constructing part isn't there because in
camel, you typically construct a message elsewhere as a payload or a
SOAP-envelope and simply forwarding it to a cxf endpoint that can send
that message.

If that is what you can use, you can find the examples in these tests
https://git-wip-us.apache.org/repos/asf?p=camel.git;a=blob;f=components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfDispatchPayloadTest.java
https://git-wip-us.apache.org/repos/asf?p=camel.git;a=blob;f=components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfDispatchMessageTest.java

regards, aki

2014-11-12 5:54 GMT+01:00 santosh das <santoshdas1...@gmail.com>:
> Thanks a lot for the suggestion, do we have any samples specific to cxf
> that i can try out?
> I need some more clarification between the relationship of the beans and
> processors and how they fit in together?
>
> I believe we can have an anonymous innerclass of processor to define the
> custom business logic, are you proposing to hook in CXF dispatch code in
> there?
>
> Also is there a plan to support CXF dispatch API out of the box from camel
> in the near future.
>
> I find it really encouraging to get suggestions from an active community
> group.
> Appreciate for all the help provided so far and going forward.
>
> Thanks,
> Santosh
>
>
> On Wed, Nov 12, 2014 at 8:10 AM, Willem Jiang <willem.ji...@gmail.com>
> wrote:
>
>> Current camel-cxf doesn’t support the dispatch API, you can use the
>> PAYLOAD message data format to do the something.
>>
>> BTW, if you still want to use the CXF dispatch API, you can use bean[1] or
>> processor[2] to integration the invocation within Camel route.
>>
>> [1]http://camel.apache.org/bean.html
>> [2]http://camel.apache.org/processor.html
>>
>> --
>> Willem Jiang
>>
>> Red Hat, Inc.
>> Web: http://www.redhat.com
>> Blog: http://willemjiang.blogspot.com (English)
>> http://jnn.iteye.com (Chinese)
>> Twitter: willemjiang
>> Weibo: 姜宁willem
>>
>>
>>
>> On November 11, 2014 at 5:41:52 PM, santoshdas1984 (
>> santoshdas1...@gmail.com) wrote:
>> > Hi ,
>> >
>> > Could you please elaborate a bit more about the Camel CXF endpoint.
>> > We dont want to use the spring based configuration as we are evaluating
>> this
>> > for our product
>> >
>> > The same reason we have used CXF For e.g.
>> > For Ws-Addressing we are using the dispatch api as follows
>> >
>> > import static
>> >
>> org.apache.cxf.ws.addressing.JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES;
>> >
>> > import java.io.FileNotFoundException;
>> > import java.io.IOException;
>> >
>> > import javax.xml.namespace.QName;
>> > import javax.xml.soap.MessageFactory;
>> > import javax.xml.soap.SOAPBody;
>> > import javax.xml.soap.SOAPConstants;
>> > import javax.xml.soap.SOAPElement;
>> > import javax.xml.soap.SOAPEnvelope;
>> > import javax.xml.soap.SOAPException;
>> > import javax.xml.soap.SOAPMessage;
>> > import javax.xml.soap.SOAPPart;
>> > import javax.xml.ws.Dispatch;
>> > import javax.xml.ws.Service;
>> > import javax.xml.ws.soap.SOAPBinding;
>> >
>> > import org.apache.cxf.endpoint.Client;
>> > import org.apache.cxf.jaxws.DispatchImpl;
>> > import org.apache.cxf.ws.addressing.AddressingProperties;
>> > import org.apache.cxf.ws.addressing.AttributedURIType;
>> > import org.apache.cxf.ws.addressing.ObjectFactory;
>> > import org.apache.cxf.ws.addressing.impl.MAPAggregatorImpl;
>> > import org.apache.cxf.ws.addressing.soap.MAPCodec;
>> >
>> > import com.pega.pegarules.priv.ModuleVersion;
>> >
>> > public class TestCXFAddressing {
>> >
>> > public static final String VERSION = ModuleVersion.register("$Id$");
>> > private static final ObjectFactory WSA_OBJECT_FACTORY = new
>> > ObjectFactory();
>> >
>> > /**
>> > * @param args
>> > * @throws SOAPException
>> > * @throws IOException
>> > */
>> > public static void main(String[] args) throws IOException, SOAPException
>> {
>> > testService();
>> > }
>> >
>> > private static void testService() throws FileNotFoundException,
>> > IOException, SOAPException {
>> > QName serviceName = new QName("", "");
>> > Service s = Service.create(serviceName);
>> >
>> > QName portName = new QName("", "");
>> >
>> > s.addPort(portName, SOAPBinding.SOAP11HTTP_BINDING,
>> > "http://localhost:9000/SoapContext/SoapPort";);
>> >
>> > Dispatch dispatch = s.createDispatch(portName,
>> > SOAPMessage.class, Service.Mode.MESSAGE);
>> > Client client = ((DispatchImpl) dispatch).getClient();
>> >
>> > // engage addressing interceptors
>> > MAPCodec mapCodec = new MAPCodec();
>> > MAPAggregatorImpl mapAggregator = new MAPAggregatorImpl();
>> >
>> > client.getOutInterceptors().add(mapCodec);
>> > client.getOutInterceptors().add(mapAggregator);
>> > client.getInInterceptors().add(mapCodec);
>> > client.getInInterceptors().add(mapAggregator);
>> >
>> > // set addressing property in request context
>> > dispatch.getRequestContext().put(CLIENT_ADDRESSING_PROPERTIES,
>> > createMaps());
>> >
>> > // Create a message. This example works with the SOAPPART.
>> > MessageFactory mf = MessageFactory
>> > .newInstance(SOAPConstants.SOAP_1_1_PROTOCOL);
>> > SOAPMessage request = mf.createMessage();
>> > SOAPPart part = request.getSOAPPart();
>> >
>> > // Obtain the SOAPEnvelope and header and body elements.
>> > SOAPEnvelope env = part.getEnvelope();
>> > SOAPBody body = env.getBody();
>> >
>> > // Construct the message payload.
>> > SOAPElement operation = body.addChildElement("greetMe", "tns",
>> > "http://apache.org/hello_world_soap_http/types";);
>> > SOAPElement value = operation.addChildElement("requestType", "tns",
>> > "http://apache.org/hello_world_soap_http/types";);
>> > value.addTextNode("World");
>> > request.saveChanges();
>> > SOAPMessage response = dispatch.invoke(request);
>> > System.out.println(response.getSOAPBody().getTextContent());
>> >
>> > }
>> >
>> > private static AddressingProperties createMaps() {
>> > // get Message Addressing Properties instance
>> > AddressingProperties maps = new AddressingProperties();
>> > // set MessageID property
>> > AttributedURIType messageID = WSA_OBJECT_FACTORY
>> > .createAttributedURIType();
>> > // AttributedURIType action =
>> > // WSA_OBJECT_FACTORY.createAttributedURIType();
>> > messageID.setValue("urn:uuid:" + System.currentTimeMillis());
>> > maps.setMessageID(messageID);
>> > return maps;
>> > }
>> >
>> > }
>> >
>> >
>> > Now i am interested to know if we can use CAMEL routing capabilities by
>> > having such a programming model in CXF and we are not so inclined towards
>> > using spring configuration approach.
>> >
>> > So basic question is if i were to use CAMEL as a layer to add routing
>> > mechanism and use CXF dispatch as a web service engine , how can i do
>> that?
>> >
>> >
>> >
>> > --
>> > View this message in context:
>> http://camel.465427.n5.nabble.com/Support-for-CXF-dispatch-api-in-the-latest-release-of-camel-tp5758569p5758892.html
>> > Sent from the Camel - Users mailing list archive at Nabble.com.
>> >
>>
>>

Reply via email to