activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ritwick <ritwick5gh...@gmail.com>
Subject Camel Routes
Date Mon, 30 Jun 2014 21:11:43 GMT
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.

Mime
View raw message