Hi,
I am not sure if this is the correct Camel forum for this issue I am having.
However, I am unable to find an appropriate forum - so I am posting my
question here. It will be great if someone can either guide me to the
correct forum or better still rectify the issue I am facing.
Here is what I need to do - expose a restlet endpoint to accept data; use
this data as input to an external SOAP web service and send back the
response in JSON format back to the caller...
Here is what I have done...however, I am getting the following error while
Camel tries to call the Web Service...can anyone guide me here? Thanks.

2014-06-30 14:09:24,987 [tlet-1846031557] WARN  PhaseInterceptorChain         
- Interceptor for
{http://www.webserviceX.NET/}CurrencyConvertor#{http://www.webserviceX.NET/}ConversionRate
has thrown exception, unwinding now
java.lang.ClassCastException: ClassCastException invoking
http://www.webservicex.net/CurrencyConvertor.asmx:
org.restlet.data.Parameter cannot be cast to java.lang.String


public class IntegrationTest extends CamelTestSupport {

    @org.junit.Test
    public void integTest() throws Exception {
        //trying to simulate the rest service call...
  
template.sendBodyAndHeader("restlet:http://localhost:8080/convert/{data}?restletMethods=get";,
"Body does not matter here", "data",
"{\"FromCurrency\":\"AUD\",\"ToCurrency\":\"USD\"}");
        
    }


    @Override
    protected RouteBuilder createRouteBuilder() throws Exception {
        return new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                System.out.println("In Counfigure");

                        String cxfEndpoint =
"cxf://http://www.webservicex.net/CurrencyConvertor.asmx?";
                                        +
"wsdlURL=http://www.webservicex.net/CurrencyConvertor.asmx?wsdl&";
                                        + 
"serviceName={http://www.webserviceX.NET/}CurrencyConvertor&";
                                        + 
"portName={http://www.webserviceX.NET/}CurrencyConvertorSoap&";
                                        + "dataFormat=MESSAGE";
                                        
                        XmlJsonDataFormat xmlJsonFormat = new 
XmlJsonDataFormat();
                        SoapJaxbDataFormat soap = new
SoapJaxbDataFormat("net.webservicex", new
ServiceInterfaceStrategy(CurrencyConvertorSoap.class, true));

                                GsonDataFormat gson = new 
GsonDataFormat(ConversionRate.class);
                                
gson.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE);
                                
from("restlet:http://localhost:8080/convert/{data}?restletMethods=get";).routeId("Restlet")
                                .process(new Processor() {
                                        @Override
                                        public void process(Exchange exchange) 
throws Exception {
                                                String data = (String) 
URLDecoder.decode((String)
exchange.getIn().getHeader("data"), "UTF-8");
                                                System.out.println(data);
                                                // get the mail body as a String
                                                exchange.getIn().setBody(data);
                                                
Response.getCurrent().setStatus(Status.SUCCESS_OK);
                                }
                                        
                                })
                .unmarshal(gson)
                .marshal(soap)
                .log("${body}")
                .to(cxfEndpoint)
                .unmarshal(soap)
                .marshal(xmlJsonFormat);
                .log("${body}");
            }
        };
    }
}




--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Camel-Routes-tp4682675.html
Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.

Reply via email to