Quantcast
Channel: Apache Timeline
Viewing all articles
Browse latest Browse all 5648

camel-cxf , return complex type object problem

$
0
0
Dear all,

I encounter a camel-cxf 's cxf:bean problem
it seems , it works with return type as Pojo but failed with List<Pojo>
I got exception at karaf like Below. Could anyone give some hints?

Thanks in advance!

WARNING: Interceptor for
{http://ws.foo.com/}FileServiceService#{http://ws.foo.com/}getfiles has
thrown exception, unwinding now
org.apache.cxf.interceptor.Fault
at
org.apache.cxf.databinding.AbstractWrapperHelper.createWrapperObject(AbstractWrapperHelper.java:107)
at
org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor.handleMessage(WrapperClassOutInterceptor.java:105)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
at
org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:77)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:26

Below are my blueprint and example code
##################################################################
define web service Endpoint
<camelcxf:cxfEndpoint id="fileService"

wsdlURL="classpath:/META-INF/wsdl/FileServiceService.wsdl"
address="http://localhost:8080/foo/file"
serviceClass="com.foo.ws.FileService">
</camelcxf:cxfEndpoint>

//define route , using cxf:bean , the real web service will be implemented
by
com.foo.camel.FileProcessor

<bean id="fp" class="com.foo.camel.FileProcessor" >
</bean>

<route id="files">
<from uri="cxf:bean:fileService" />
<to uri="bean:fp" />
</route>

public class FileProcessor implements Processor {
@Override
public void process(Exchange exchng) throws Exception {

//
.......

it works with return type as pojo but failed with List<Pojo>

//
List<FilePojo> fileList = results;

exchng.getOut().setBody( fileList );
} catch (Exception e) {

throw new FileNotFoundException("Something goes wrong in "
+this.getClass().getName(), e);

// proxy web serivce, cxf:bean refers to it

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import java.util.List;
/**

*/
@WebService
public class FileService {

/**
* Web service operation
*/
@WebMethod(operationName = "getfile")
@WebResult(name = "file")
public ReceivedPDF getfile(@WebParam(name = "fileName") String fileName)
throws Exception{
//TODO write your implementation code here:

return null;

/**
* Web service operation
*/
@WebMethod(operationName = "getfiles")
@WebResult(name = "files")
public List<FilePojo> getfiles(@WebParam(name = "fileNames")
List<String> fileNames) throws Exception{

return null;

Viewing all articles
Browse latest Browse all 5648

Trending Articles