Hi Carlo,

I was confused, as your customer code can decide to call the getActiveUser or acceptOverrideRequest method.

I can't see what's wrong with interface that you defined.

Willem

Carlo Camerino wrote:
i think i got it now

i think there was an issue with my itnerface naming and binding

it got confused with

public List<Overrider> getActiveUsers(OverrideRequestor requestor,
OverrideTransaction overrideTransaction);

    /**
     * This method accepts an override request coming from an override
client.
     * The server accepts an override request and comet is notified
     */
    public void acceptOverrideRequest(OverrideRequestor requestor,
OverrideTransaction overrideTransaction);

camel was choosing the second one instead of the first one which i needed to
use....

how do i explicitly declare what method camel should use?

On Tue, Jun 1, 2010 at 4:13 PM, Carlo Camerino <[email protected]>wrote:


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.co
mponent.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.AddressingPolicyInterceptorPr
ovider,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.co
mponent.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.AddressingPolicyInterceptorPr
ovider,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.co
mponent.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.AddressingPolicyInterceptorPr
ovider,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);
           }
       });

   }




Reply via email to