Oh, your return object is a list, camel-cxf converter can't deal with
this situation rightly.
You need put this response into a Object array just like this
Object[] result = new Object[1];
result[0] = messageContentsList;
exchange.getOut().setBody(result);
Willem
Carlo Camerino wrote:
it seems to be a problem with the server side retrurning nothing
here's how the reply looks like but in my reply i'm actually setting the out
message body
Here is my interface declaration btw
/**
* @author User
*
*/
@WebService(name="overrideServer", serviceName="overrideServer")
public interface OverrideServer {
/**
* This method gets the list of active users available for override.
* @return
*/
public List<Overrider> getActiveUsers(OverrideRequestor requestor,
OverrideTransaction overrideTransaction);
messageContentsList.add(
overrideServer.getActiveUsers((OverrideRequestor)requestList.get(0),
(OverrideTransaction) requestList.get(1)));
// using this method to send reply
--> settings exchangge's out message body in this part?
exchange.getOut().setBody(messageContentsList);
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:acceptOverrideRequestResponse
xmlns:ns2="http://override.luminous.ccti.com/"/></soap:Body></soap:Envelope>
On Tue, Jun 1, 2010 at 2:49 PM, Carlo Camerino <[email protected]>wrote:
Hi,
I seem to be getting this problem in which I'm getting a blank reply comin
gfrom the cxf web service.
i use cxf:bean and cxf://address component
What can i be doing wrong?
thanks
carlo
Client Configuration
@Override
public void configure() throws Exception {
from("direct:carlo").inOut("cxf://
http://localhost:9090/override/override?serviceClass=com.ccti.luminous.override.OverrideServer").process(new
Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.setPattern(ExchangePattern.InOut);
LOG.info("Class Is: " +
exchange.getIn().getBody().getClass());
// at this point message content list is empty
List messageContentsList =
(List)exchange.getIn().getBody();
System.out.println(exchange.getOut());
}
});
}
Server Configuration
@Override
public void configure() throws Exception {
from("cxf:bean:overrideServerEndpoint").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
System.out.println("Trial.");
System.out.println(exchange.getIn());
System.out.println(exchange.getIn().getClass());
System.out.println(exchange.getIn().getBody().getClass());
List requestList = (List) exchange.getIn().getBody();
List messageContentsList = new ArrayList();
messageContentsList.add(overrideServer.getActiveUsers((OverrideRequestor)requestList.get(0),
(OverrideTransaction) requestList.get(1)));
// using this method to send reply
exchange.getOut().setBody(messageContentsList);
}
});
}