[prev in list] [next in list] [prev in thread] [next in thread]
List: activemq-dev
Subject: Camel Routes
From: Ritwick <ritwick5ghosh () gmail ! com>
Date: 2014-06-30 21:11:43
Message-ID: 1404162688157-4682675.post () n4 ! nabble ! com
[Download RAW message or body]
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.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic