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. > > > >