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;
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;