Willem, I was thinking to start with a simple hardcoded string message first
because I have a so simple webservice that receive a string and return the
same string. 

If this is ok, I will work with real xml instances...



I found a aproach to do it and if someone have a remark, please help me!!!
My inspiration was 
https://svn.apache.org/repos/asf/camel/trunk/examples/camel-example-cxf/

Sorry for the length of the post and much comments, but I am put the
solution in this way because was so hard to me find and understand a
solution to create a cxf provider and it can help someone in the future. 


I would like to ask:
1) I am not shure if I still need xslt? Maybe in another moment.
2) Could I return javascript to the browser?








*BELOW IS THE ROUTE*


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:cxf="http://camel.apache.org/schema/cxf";
        xsi:schemaLocation="
    http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
    http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd
    http://camel.apache.org/schema/cxf
http://camel.apache.org/schema/cxf/camel-cxf.xsd";>

    
        <cxf:cxfEndpoint id="echoEndpoint"
               
serviceClass="org.apache.camel.example.cxf.provider.GreeterProvider"
                        
address="http://localhost:8282/ode/processes/ProcessoSincrono";
                        wsdlURL="wsdl/ProcessoSincronoArtifacts.wsdl"
                        endpointName="s:ProcessoSincronoPort"
                        serviceName="s:ProcessoSincronoService"
                xmlns:s="br.edu.fzlbpms.teste"/>
  
        <camelContext xmlns="http://camel.apache.org/schema/spring";>
                
                <route id="FZLBPMS_CAMEL_ROUTE___OrbeonService">                
                        
                        <from
uri="jetty:http://localhost:18181/orbeonservice/pega_dados_do_formulario?sessionSupport=true"/>
                 
                    <to 
uri="Handle_App_e_FormTitle_camming_from_orbeonformPROCESSOR"/>
                
                        <setHeader headerName="CamelHttpUri">
                        
<simple>http://localhost:8282/exist/rest/db/orbeon/fr/${header.fzlbpms_orbeon_app}/${header.fzlbpms_orbeon_form}/data/${header.fzlbpms_orbeon_dataId}/data.xml</simple>
                        </setHeader>    
                        
                        <log message="----------------------------------"/>
                        <log message="before inOut..."/>                        
                        <log message="### body = ${body}"/>
                        <log message="###"/>
                        <log message="###"/>
                        <log message="###"/>
                        <inOut 
uri="http://doesnt.matter.we/override/it/anyways"; />
                        <log message="----------------------------------"/>
                        <log message="before SOAPMessageProducerPROCESSOR..."/> 
                
                        <log message="### body = ${body}"/>
                        <log message="###"/>
                        <log message="###"/>
                        <log message="###"/>                                    
        
                        <to  uri="SOAPMessageProducerPROCESSOR"/>
                        <log message="----------------------------------"/>
                        <log message="before SOAPMessageProducerPROCESSOR..."/> 
                
                        <log message="### body = ${body}"/>
                        <log message="###"/>
                        <log message="###"/>
                        <log message="###"/>
                        <to uri="cxf:bean:echoEndpoint" />
                        <log message="----------------------------------"/>
                        <log message="before SOAPMessageConsumerPROCESSOR..."/> 
                
                        <log message="### body = ${body}"/>
                        <log message="###"/>
                        <log message="###"/>
                        <log message="###"/>                    
                        <to  uri="SOAPMessageConsumerPROCESSOR"/>
                        <log message="----------------------------------"/>
                        <log message="before SOAPMessageConsumerPROCESSOR..."/> 
                
                        <log message="### body = ${body}"/>
                        <log message="###"/>
                        <log message="###"/>
                        <log message="###"/>
                        
                        <inOut 
uri="http://doesnt.matter.we/override/it/anyways"; />                     
                </route>
        </camelContext>


        <bean id="SOAPMessageConsumerPROCESSOR"
                  
class="br.edu.fzlbpms.service.orbeon.SOAPMessageConsumerPROCESSOR" />

        <bean id="SOAPMessageProducerPROCESSOR"
                  
class="br.edu.fzlbpms.service.orbeon.SOAPMessageProducerPROCESSOR" />

        <bean id="Handle_App_e_FormTitle_camming_from_orbeonformPROCESSOR"
                  
class="br.edu.fzlbpms.service.orbeon.Pega_dados_do_formularioPROCESSOR"
/>


</beans>








public class SOAPMessageConsumerPROCESSOR implements Processor {

        /**
         * just prepare to show response in the browser
         */
        public void process(Exchange exchange) throws Exception {
                //SOAPMessage processSOAP = processSOAP(exchange);
                String soapMessageBodyContentAsString =
SOAPMessageBodyContentAsString(exchange);
                exchange.getIn().setBody(soapMessageBodyContentAsString);
                
        }

        
        public String SOAPMessageBodyContentAsString(Exchange exchange){

                SOAPMessage soapMessage =
(SOAPMessage)exchange.getIn().getBody(List.class).get(0);
        if (soapMessage == null) {
            return "soapMessage was null in the body of the Exchange";
        }

        try {
            SOAPPart sp = soapMessage.getSOAPPart();
            SOAPEnvelope se = sp.getEnvelope();
            SOAPBody sb = se.getBody();
            String requestText = sb.getFirstChild().getTextContent();           
 
            return requestText;
        } catch (Exception e) {
            e.printStackTrace();
            return "Error in consume soapMessage "+e.getMessage();
        }
                
        }

//      public SOAPMessage processSOAP(Exchange exchange) {
//                              
//              // Since the Camel-CXF endpoint uses a list to store the
parameters
//              // and bean component uses the bodyAs expression to get the 
value
//              // we'll need to deal with the parameters ourself
//                      // I DO NOT KNOW IF IT IS TRUE CONSIDERING WHAT 
WEBSERVICE WHAT I AM
ACCESSING
//                      // BECAUSE IT IS A AXIS2 WEBSERVICE AUTOMATIC CREATED 
FROM ODE
//                      //FOR NOW I WILL JUST IGNORE IT FOR A WILE AND JUST 
RETURN STRING 
//              
//                      SOAPMessage soapMessage =
(SOAPMessage)exchange.getIn().getBody(List.class).get(0);
//              if (soapMessage == null) {
//                  System.out.println("Incoming null message detected...");
//                  return createDefaultSoapMessage("Greetings from Apache
Camel!!!!", "null");
//              }
//
//              try {
//                  SOAPPart sp = soapMessage.getSOAPPart();
//                  SOAPEnvelope se = sp.getEnvelope();
//                  SOAPBody sb = se.getBody();
//                  String requestText = sb.getFirstChild().getTextContent();
//                  System.out.println(requestText);
//                  return createDefaultSoapMessage("Greetings from Apache
Camel!!!!", requestText);
//              } catch (Exception e) {
//                  e.printStackTrace();
//                  return createDefaultSoapMessage("Greetings from Apache
Camel!!!!", e.getClass().getName());
//              }
//          }

}






package br.edu.fzlbpms.service.orbeon;

import java.util.List;

import javax.xml.namespace.QName;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPBodyElement;
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 org.apache.camel.Exchange;
import org.apache.camel.Processor;

public class SOAPMessageProducerPROCESSOR implements Processor {


        public void process(Exchange exchange) throws Exception {
                exchange.getIn().setBody(createSimpleHardCodedSoapMessage());
        }


        public SOAPMessage createSimpleHardCodedSoapMessage() {
                try {
                        
                        SOAPMessage soapMessage = 
MessageFactory.newInstance().createMessage();
                        SOAPBody body = 
soapMessage.getSOAPPart().getEnvelope().getBody();


//                      QName payloadName = new QName(
//                                      
"http://apache.org/hello_world_soap_http/types";, (tager namespace of
xsd)
//                                      "greetMeResponse", "ns1");

                        QName payloadName = new QName(
                                        "br.edu.fzlbpms.teste",
                                        "ProcessoSincronoRequest", "br");

                        
                        SOAPBodyElement payload = 
body.addBodyElement(payloadName);

                        SOAPElement message = payload.addChildElement("input");

                        message.addTextNode("string_to_echo");
                        
                        return soapMessage;
                        
                } catch (SOAPException e) {
                        e.printStackTrace();
                        throw new RuntimeException(e);
                }
        }

}





*THIS IS THE SERVICEMIX LOG*


17:33:11,783 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 |
----------------------------------
17:33:11,783 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | before inOut...
17:33:11,783 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ### body = 
17:33:11,783 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ###
17:33:11,783 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ###
17:33:11,783 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ###
17:33:11,787 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 |
----------------------------------
17:33:11,787 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | before
SOAPMessageProducerPROCESSOR...
17:33:11,787 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ### body =* <form
xmlns:xxi="http://orbeon.org/oxf/xml/xinclude";
xmlns:xh="http://www.w3.org/1999/xhtml";
xmlns:ev="http://www.w3.org/2001/xml-events";
xmlns:xi="http://www.w3.org/2001/XInclude";
xmlns:saxon="http://saxon.sf.net/";
xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns:fb="http://orbeon.org/oxf/xml/form-builder";
xmlns:xbl="http://www.w3.org/ns/xbl";
xmlns:xxf="http://orbeon.org/oxf/xml/xforms";
xmlns:version="java:org.orbeon.oxf.common.Version"
xmlns:sql="http://orbeon.org/oxf/xml/sql";
xmlns:p="http://www.orbeon.com/oxf/pipeline";
xmlns:fr="http://orbeon.org/oxf/xml/form-runner";
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xf="http://www.w3.org/2002/xforms";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:exf="http://www.exforms.org/exf/1-0";>
    <section-1>
        <control-1>ihihihihih</control-1>
        <control-3>ihihihihih</control-3>
    </section-1>
</form>*
17:33:11,787 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ###
17:33:11,787 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ###
17:33:11,787 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ###
17:33:11,788 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 |
----------------------------------
17:33:11,788 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | before
SOAPMessageProducerPROCESSOR...
17:33:11,788 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ### body =
*<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";><SOAP-ENV:Header/><SOAP-ENV:Body><br:ProcessoSincronoRequest
xmlns:br="br.edu.fzlbpms.teste"><input>string_to_echo</input></br:ProcessoSincronoRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>*
17:33:11,788 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ###
17:33:11,788 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ###
17:33:11,789 | INFO  | qtp8427326-1908  | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ###
17:33:11,927 | INFO  | ault-workqueue-1 | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 |
----------------------------------
17:33:11,928 | INFO  | ault-workqueue-1 | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | before
SOAPMessageConsumerPROCESSOR...
17:33:11,928 | INFO  | ault-workqueue-1 | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ### body =*
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";><soapenv:Header/><soapenv:Body><ProcessoSincronoResponse
xmlns="br.edu.fzlbpms.teste">
  <tns:result xmlns:tns="br.edu.fzlbpms.teste"><input
xmlns="">string_to_echo</input></tns:result>*
</ProcessoSincronoResponse></soapenv:Body></soapenv:Envelope>
17:33:11,928 | INFO  | ault-workqueue-1 | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ###
17:33:11,929 | INFO  | ault-workqueue-1 | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ###
17:33:11,929 | INFO  | ault-workqueue-1 | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ###
17:33:11,929 | INFO  | ault-workqueue-1 | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 |
----------------------------------
17:33:11,929 | INFO  | ault-workqueue-1 | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | before
SOAPMessageConsumerPROCESSOR...
17:33:11,929 | INFO  | ault-workqueue-1 | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ### body = 
  string_to_echo

17:33:11,929 | INFO  | ault-workqueue-1 | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ###
17:33:11,929 | INFO  | ault-workqueue-1 | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ###
17:33:11,929 | INFO  | ault-workqueue-1 | BPMS_CAMEL_ROUTE___OrbeonService |
90 - org.apache.camel.camel-core - 2.8.0.fuse-07-15 | ###











--
View this message in context: 
http://camel.465427.n5.nabble.com/Sharing-a-solution-for-discussion-tp5732560p5732854.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to