i'm using latest camel version --> 2.3.0 is there anything i need to do? seems like the server is sending a blank reply to the client.
it's still not working. here' sthe trace logs > > Client > > TRACE - ServiceHelper - Starting service: Producer[ > http://localhost:8088/override/override] > DEBUG - CxfProducer - Starting producer: Producer[ > http://localhost:8088/override/override] > DEBUG - ProducerCache - Adding to producer cache with key: > Endpoint[http://localhost:8088/override/override] for producer: Producer[ > http://localhost:8088/override/override] > TRACE - CxfProducer - Process exchange: Exchange[Message: > [com.ccti.luminous.override.overridereques...@ccc588, > com.ccti.luminous.override.overridetransact...@1bc82e7]] > TRACE - CxfProducer - Set Camel Exchange property: > org.apache.camel.component.cxf.DataFormat=POJO > DEBUG - CxfProducer - Try to find a default operation. You > should set 'operationName' in header. > TRACE - CxfProducer - Set exchange property: > BindingOperationInfo: [BindingOperationInfo: { > http://override.luminous.ccti.com/}acceptOverrideRequest<http://override.luminous.ccti.com/%7DacceptOverrideRequest> > ] > TRACE - CxfProducer - Unwrapped BOI [BindingOperationInfo: { > http://override.luminous.ccti.com/}acceptOverrideRequest<http://override.luminous.ccti.com/%7DacceptOverrideRequest> > ] > DEBUG - CxfProducer - Try to find a default operation. You > should set 'operationName' in header. > TRACE - CxfProducer - params[0] = > com.ccti.luminous.override.overridereques...@ccc588 > TRACE - CxfProducer - params[1] = > com.ccti.luminous.override.overridetransact...@1bc82e7 > TRACE - DefaultListableBeanFactory - No bean named > 'org.apache.cxf.ws.policy.PolicyEngine' found in > org.springframework.beans.factory.support.defaultlistablebeanfact...@b6548: > defining beans > [cxf,org.apache.cxf.bus.spring.BusApplicationListener,org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.ResourceManager,org.apache.cxf.configuration.Configurer,org.apache.cxf.binding.BindingFactoryManager,org.apache.cxf.transport.DestinationFactoryManager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleManager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.endpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.endpoint.ServiceContractResolverRegistry,org.apache.camel.component.cxf.transport.CamelTransportFactory#0,org.apache.cxf.jaxrs.JAXRSBindingFactory,org.apache.cxf.binding.soap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactory,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.binding.xml.XMLBindingFactory,org.apache.cxf.jaxws.context.WebServiceContextResourceResolver,org.apache.cxf.jaxws.context.WebServiceContextImpl,org.apache.cxf.management.InstrumentationManager,org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder,org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder,org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider,org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory,org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory,org.apache.cxf.transport.jms.JMSTransportFactory,org.apache.cxf.transport.local.LocalTransportFactory,org.apache.cxf.ws.addressing.policy.AddressingAssertionBuilder,org.apache.cxf.ws.addressing.policy.AddressingPolicyInterceptorProvider,org.apache.cxf.ws.addressing.policy.UsingAddressingAssertionBuilder]; > root of factory hierarchy > TRACE - DefaultListableBeanFactory - No bean named '{ > http://override.luminous.ccti.com/}overrideServerPort.http-conduit<http://override.luminous.ccti.com/%7DoverrideServerPort.http-conduit>' > found in > org.springframework.beans.factory.support.defaultlistablebeanfact...@b6548: > defining beans > [cxf,org.apache.cxf.bus.spring.BusApplicationListener,org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.ResourceManager,org.apache.cxf.configuration.Configurer,org.apache.cxf.binding.BindingFactoryManager,org.apache.cxf.transport.DestinationFactoryManager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleManager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.endpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.endpoint.ServiceContractResolverRegistry,org.apache.camel.component.cxf.transport.CamelTransportFactory#0,org.apache.cxf.jaxrs.JAXRSBindingFactory,org.apache.cxf.binding.soap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactory,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.binding.xml.XMLBindingFactory,org.apache.cxf.jaxws.context.WebServiceContextResourceResolver,org.apache.cxf.jaxws.context.WebServiceContextImpl,org.apache.cxf.management.InstrumentationManager,org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder,org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder,org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider,org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory,org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory,org.apache.cxf.transport.jms.JMSTransportFactory,org.apache.cxf.transport.local.LocalTransportFactory,org.apache.cxf.ws.addressing.policy.AddressingAssertionBuilder,org.apache.cxf.ws.addressing.policy.AddressingPolicyInterceptorProvider,org.apache.cxf.ws.addressing.policy.UsingAddressingAssertionBuilder]; > root of factory hierarchy > TRACE - DefaultListableBeanFactory - No bean named ' > http://localhost:8088/override/override' found in > org.springframework.beans.factory.support.defaultlistablebeanfact...@b6548: > defining beans > [cxf,org.apache.cxf.bus.spring.BusApplicationListener,org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.ResourceManager,org.apache.cxf.configuration.Configurer,org.apache.cxf.binding.BindingFactoryManager,org.apache.cxf.transport.DestinationFactoryManager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleManager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.endpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.endpoint.ServiceContractResolverRegistry,org.apache.camel.component.cxf.transport.CamelTransportFactory#0,org.apache.cxf.jaxrs.JAXRSBindingFactory,org.apache.cxf.binding.soap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactory,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.binding.xml.XMLBindingFactory,org.apache.cxf.jaxws.context.WebServiceContextResourceResolver,org.apache.cxf.jaxws.context.WebServiceContextImpl,org.apache.cxf.management.InstrumentationManager,org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder,org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder,org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider,org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory,org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory,org.apache.cxf.transport.jms.JMSTransportFactory,org.apache.cxf.transport.local.LocalTransportFactory,org.apache.cxf.ws.addressing.policy.AddressingAssertionBuilder,org.apache.cxf.ws.addressing.policy.AddressingPolicyInterceptorProvider,org.apache.cxf.ws.addressing.policy.UsingAddressingAssertionBuilder]; > root of factory hierarchy > TRACE - DefaultCxfBinding - Populate exchange from CXF response > message: org.apache.cxf.binding.soap.soapmess...@746bc28f > TRACE - DefaultCxfBinding - Content format=class > java.io.InputStream > value=sun.net.www.protocol.http.httpurlconnection$httpinputstr...@511e0a > TRACE - DefaultCxfBinding - Content format=interface > java.util.List value=[] > TRACE - DefaultCxfBinding - Content format=interface > javax.xml.stream.XMLStreamReader > value=com.ctc.wstx.sr.validatingstreamrea...@18b3e62 > TRACE - DefaultCxfBinding - Content format=interface > org.w3c.dom.Node value=[#document: null] > TRACE - DefaultCxfBinding - Extracted body from CXF message = [] > TRACE - DefaultCxfBinding - Set header = ResponseContext value = > {javax.xml.ws.wsdl.port={ > http://override.luminous.ccti.com/}overrideServerPort<http://override.luminous.ccti.com/%7DoverrideServerPort>, > org.apache.cxf.service.model.MessageInfo=[MessageInfo OUTPUT: { > http://override.luminous.ccti.com/}acceptOverrideRequestResponse<http://override.luminous.ccti.com/%7DacceptOverrideRequestResponse>], > org.apache.cxf.client=true, org.apache.cxf.message.inbound=true, > org.apache.cxf.message.Message.PROTOCOL_HEADERS={content-type=[text/xml; > charset=utf-8], Content-Length=[192], Server=[Jetty(6.1.6)]}, > javax.xml.ws.wsdl.service={ > http://override.luminous.ccti.com/}OverrideServerService<http://override.luminous.ccti.com/%7DOverrideServerService>, > org.apache.cxf.message.Message.ENCODING=UTF-8, javax.xml.ws.wsdl.interface={ > http://override.luminous.ccti.com/}overrideServer<http://override.luminous.ccti.com/%7DoverrideServer>, > javax.xml.ws.wsdl.operation={ > http://override.luminous.ccti.com/}acceptOverrideRequest<http://override.luminous.ccti.com/%7DacceptOverrideRequest>, > javax.xml.ws.wsdl.description=http://localhost:8088/override/override?wsdl, > org.apache.cxf.service.model.bindingmessageinfo=org.apache.cxf.service.model.bindingmessagei...@d1b72d, > Content-Type=text/xml; charset=utf-8, org.apache.cxf.headers.Header.list=[], > org.apache.cxf.message.Message.RESPONSE_CODE=200} > TRACE - DefaultCxfBinding - Populate header from CXF > header=content-type value=[text/xml; charset=utf-8] > TRACE - DefaultCxfBinding - Populate header from CXF header=Server > value=[Jetty(6.1.6)] > TRACE - CxfHeaderFilterStrategy - messageHeaderfilter = > org.apache.camel.component.cxf.soapmessageheaderfil...@b2fb1e > TRACE - DefaultCxfBinding - Populate header from CXF > header=org.apache.cxf.headers.Header.list value=[] > TRACE - Pipeline - Processing exchangeId: > 3e3f6236-051b-4c56-b0e1-70acd2360d06 >>> Exchange[Message: []] > INFO - ClientRoutes - Class Is: class > org.apache.cxf.message.MessageContentsList > Message: [Body is null] > > Server > > TRACE - CxfConsumer - Received CXF Request: > {org.apache.cxf.service.Service=[ServiceImpl { > http://override.luminous.ccti.com/}OverrideServerImplService<http://override.luminous.ccti.com/%7DOverrideServerImplService>], > javax.xml.ws.wsdl.port={ > http://override.luminous.ccti.com/}OverrideServerImplPort<http://override.luminous.ccti.com/%7DOverrideServerImplPort>, > javax.xml.ws.wsdl.interface={ > http://override.luminous.ccti.com/}overrideServer<http://override.luminous.ccti.com/%7DoverrideServer>, > org.apache.cxf.service.model.OperationInfo=[OperationInfo: { > http://override.luminous.ccti.com/}acceptOverrideRequest<http://override.luminous.ccti.com/%7DacceptOverrideRequest>], > java.util.concurrent.executor=org.apache.cxf.workqueue.synchronousexecu...@98b13b, > javax.xml.ws.wsdl.description=/override?wsdl, > org.apache.cxf.bus=org.apache.cxf.bus.cxfbusi...@16d4b50, > javax.xml.ws.wsdl.service={ > http://override.luminous.ccti.com/}OverrideServerImplService<http://override.luminous.ccti.com/%7DOverrideServerImplService>, > org.apache.cxf.binding.binding=org.apache.cxf.binding.soap.soapbind...@9bad4f, > org.apache.cxf.endpoint.Endpoint={serviceClass=#overrideServer, > beanId=overrideServerEndpoint}, > org.apache.cxf.service.model.BindingOperationInfo=[BindingOperationInfo: { > http://override.luminous.ccti.com/}acceptOverrideRequest<http://override.luminous.ccti.com/%7DacceptOverrideRequest> > ]} > TRACE - CxfConsumer - Set exchange property: > BindingOperationInfo: [BindingOperationInfo: { > http://override.luminous.ccti.com/}acceptOverrideRequest<http://override.luminous.ccti.com/%7DacceptOverrideRequest> > ] > TRACE - CxfConsumer - Set Exchange property: > org.apache.camel.component.cxf.DataFormat=POJO > TRACE - DefaultCxfBinding - Set IN header: operationNameSpace= > http://override.luminous.ccti.com/ > TRACE - DefaultCxfBinding - Set IN header: > operationName=acceptOverrideRequest > TRACE - DefaultCxfBinding - Set exchange MEP: InOut > TRACE - DefaultCxfBinding - Populate header from CXF > header=content-type value=[text/xml; charset=UTF-8] > TRACE - DefaultCxfBinding - Populate header from CXF > header=connection value=[keep-alive] > TRACE - DefaultCxfBinding - Populate header from CXF header=Host > value=[localhost:9090] > TRACE - DefaultCxfBinding - Populate header from CXF > header=SOAPAction value=[""] > TRACE - DefaultCxfBinding - Populate header from CXF > header=User-Agent value=[Apache CXF 2.2.3] > TRACE - DefaultCxfBinding - Populate header from CXF > header=Content-Type value=[text/xml; charset=UTF-8] > TRACE - DefaultCxfBinding - Populate header from CXF header=Accept > value=[*/*] > TRACE - DefaultCxfBinding - Populate header from CXF header=Pragma > value=[no-cache] > TRACE - DefaultCxfBinding - Populate header from CXF > header=Cache-Control value=[no-cache] > TRACE - CxfHeaderFilterStrategy - messageHeaderfilter = > org.apache.camel.component.cxf.soapmessageheaderfil...@1342f5b > TRACE - DefaultCxfBinding - Populate header from CXF > header=org.apache.cxf.headers.Header.list value=[] > TRACE - DefaultCxfBinding - Content format=class > java.io.InputStream value=org.apache.cxf.io.delegatinginputstr...@114ef62 > TRACE - DefaultCxfBinding - Content format=class > org.apache.cxf.io.DelegatingInputStream > value=org.apache.cxf.io.delegatinginputstr...@114ef62 > TRACE - DefaultCxfBinding - Content format=interface > javax.xml.stream.XMLStreamReader > value=com.ctc.wstx.sr.validatingstreamrea...@1703484 > TRACE - DefaultCxfBinding - Content format=interface > org.w3c.dom.Node value=[#document: null] > TRACE - DefaultCxfBinding - Content format=interface > java.util.List > value=[com.ccti.luminous.override.model.overridereques...@187e184, > com.ccti.luminous.override.model.overridetransact...@1e6cf07] > TRACE - DefaultCxfBinding - Extracted body from CXF message = > [com.ccti.luminous.override.model.overridereques...@187e184, > com.ccti.luminous.override.model.overridetransact...@1e6cf07] > TRACE - DefaultInflightRepository - Total 1 inflight exchanges. Last > added: f8896e9b-77cc-4b69-915b-bc8f3eccb9a8 > Trial. > Message: [com.ccti.luminous.override.model.overridereques...@187e184, > com.ccti.luminous.override.model.overridetransact...@1e6cf07] > class org.apache.camel.impl.DefaultMessage > class org.apache.cxf.message.MessageContentsList > Hi > TRACE - DefaultInflightRepository - Total 0 inflight exchanges. Last > removed: f8896e9b-77cc-4b69-915b-bc8f3eccb9a8 > TRACE - InstrumentationProcessor - route: Recording duration: 15 millis > for exchange: Exchange[Message: [Ljava.lang.Object;@3e574] > TRACE - DefaultCxfBinding - Set out response context = > {CamelCXFDataFormat=POJO, > org.apache.cxf.service.model.BindingOperationInfo=[BindingOperationInfo: { > http://override.luminous.ccti.com/}acceptOverrideRequest<http://override.luminous.ccti.com/%7DacceptOverrideRequest> > ]} > TRACE - DefaultCxfBinding - Set Out CXF message content = > [[com.ccti.luminous.override.model.overri...@c791f4, > com.ccti.luminous.override.model.overri...@3f58bb]] > > And here's the updated source code > > > 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))); > List results = > overrideServer.getActiveUsers((OverrideRequestor)requestList.get(0), > (OverrideTransaction) requestList.get(1)); > Object[] objects = new Object[1]; > objects[0] = > overrideServer.getActiveUsers((OverrideRequestor)requestList.get(0), > (OverrideTransaction) requestList.get(1)); > > exchange.getOut().setBody(objects); > System.out.println("Hi"); > > } > > On Tue, Jun 1, 2010 at 3:22 PM, Willem Jiang <[email protected]>wrote: > >> 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); >>>> } >>>> }); >>>> >>>> } >>>> >>>> >>> >> >
