That would be nice, thx a lot!

On 9/29/07, Willem Jiang <[EMAIL PROTECTED]> wrote:
> Hi Guillaume,
>
> I will add some supports of creating the consumer server with just WSDL
> url in the MESSAGE and PAYLOAD date formate mode in CXF component.
>
> I saw you just committed codes , you already created a server that can
> consume the soap message. I'd like to fill the codes of exchanging the
> messages with camel core.
>
> Willem.
>
> Guillaume Nodet wrote:
> > I'm thinking that usually, if the target endpoint is not a jaxws pojo,
> > we will often use an xml based content rather than marshal the data,
> > so that you can do content based routing, transformation, etc...
> >
> > Btw, I'm working on the "soap:" component when time permits.  If you
> > ever want to look at it and work on it, just tell !  I've just
> > committed a few things for that but we still need to fill the holes
> > with cxf  related code.
> >
> > On 9/29/07, Willem Jiang <[EMAIL PROTECTED]> wrote:
> >
> >> Hi Guillaume,
> >>
> >> Good questions. We could face lots of situations without Service
> >> Endpoint Interface (SEI) provided for the endpoint.
> >>
> >> Current CXF DynmaicClientFactory[1] can create a client just use by
> >> passing the wsdl url information into it , and use XJC to build up the
> >> type classes  for the message marshal and unmarshal .
> >> For the Server side, I think we can do the same thing here by using
> >> WSDL2Java to generate the SEI and type class.
> >>
> >> So we could support both WSDL first and Code first programing mode here,
> >> and the SEI just be a optional parameter.
> >> [1]https://svn.apache.org/repos/asf/incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java
> >>
> >>
> >> Willem.
> >>
> >> Guillaume Nodet wrote:
> >>
> >>> That's a bit better.
> >>> But what if your service is not implemented using jaxws ?  If you have
> >>> a BPEL process rather than a pojo ?  Or if your service is implemented
> >>> by multiple small services and you use a CBR using the operation name
> >>> to dispatch the request ?
> >>> Or whatever use case one can imagine...
> >>>
> >>> On the consumer side, the role of CXF is to handle SOAP and WS-*
> >>> stuff.  This mainly relies on the WSDL rather than on a POJO.   Using
> >>> the pojo will certainly be handy if using code first approach, but we
> >>> also need to support wsdl first, and especially when there is no POJO
> >>> at all...
> >>>
> >>> I see the externalEndpoint uses a wsdlURL... (relative to what ?)  Can
> >>> both endpoints use only the WSDL so that the serviceClass becomes
> >>> optional ?
> >>>
> >>> On 9/28/07, Willem Jiang <[EMAIL PROTECTED]> wrote:
> >>>
> >>>
> >>>> Hi Guillaume,
> >>>>
> >>>> Oh, I got your means.
> >>>>
> >>>> I don't want to instantiate the Service from Spring , I just want to
> >>>> pass enough endpoint information to build the CXF Service. I check the
> >>>> server object code, and I know I can't set the invoker of a already
> >>>> created server .
> >>>> So I changed my proposal  to  use a customized CxfEndpointBean  instead
> >>>> of the  already instantiate server object or client object.
> >>>> Here is the changed example:
> >>>>
> >>>> <cxf:CxfEndpointBean id= "routerPoint"
> >>>>        serviceClass="org.apache.cxf.service.factory.HelloService"
> >>>>        address="http://localhost:8000/router";
> >>>>        serviceName="s:XMLService"
> >>>>        xmlns:s="http://apache.org/hello_world_soap_http";
> >>>>        endpointName="s:XMLPort" />
> >>>>
> >>>> <cxf:CxfEndpointBean id= "externalPoint"
> >>>>        serviceClass="org.apache.cxf.service.factory.HelloService"
> >>>>        address="http://localhost:8000/RealService";
> >>>>        wsdlURL = "wsdl/hello_world"
> >>>>        serviceName="s:XMLService"
> >>>>        xmlns:s="http://apache.org/hello_world_soap_http";
> >>>>        endpointName="s:XMLPort" />
> >>>>
> >>>> <camelContext id="camel"
> >>>> xmlns="http://activemq.apache.org/camel/schema/spring";>
> >>>>     <route>
> >>>>       <from uri="cxf://CxfEndpointBean=routerPoint"/>
> >>>>       <to uri="cxf://CxfEndpointBean=externalPoint"/>
> >>>>     </route>
> >>>> </camelContext>
> >>>>
> >>>> I will add the ServerFactoryBean and ClientFactoryBean configuration 
> >>>> with CxfEndpointBean code into the cxf component. So we still 
> >>>> instantiate the server or the client as we always do in the CXF 
> >>>> component .
> >>>>
> >>>> Thanks,
> >>>>
> >>>> Willem.
> >>>>
> >>>> Guillaume Nodet wrote:
> >>>>
> >>>>
> >>>>> I'm still very concerned about the fact that we have to instanciate
> >>>>> the service on the server side if it is not actually used (requests
> >>>>> are just forwarded).  Can we configure the server to just use a WSDL
> >>>>> instead ?
> >>>>>
> >>>>> On 9/28/07, Willem Jiang <[EMAIL PROTECTED]> wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>> Guillaume Nodet wrote:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> On 9/28/07, Willem Jiang <[EMAIL PROTECTED]> wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>> Here is an example:
> >>>>>>>> ...
> >>>>>>>>  <simple:client id="client1"
> >>>>>>>>     serviceClass="org.apache.cxf.service.factory.HelloService"
> >>>>>>>>     address="http://localhost:9000/foo2";
> >>>>>>>>     serviceName="s:XMLService"
> >>>>>>>>     xmlns:s="http://apache.org/hello_world_soap_http";
> >>>>>>>>     endpointName="s:XMLPort"
> >>>>>>>>     bindingId="http://cxf.apache.org/bindings/xformat";>
> >>>>>>>>    </simple:client>
> >>>>>>>>
> >>>>>>>> <simple:server id="server1"
> >>>>>>>> address="http://localhost:8080/simpleWithAddress";>
> >>>>>>>>     <simple:serviceBean>
> >>>>>>>>       <bean class="org.apache.cxf.service.factory.HelloServiceImpl"/>
> >>>>>>>>     </simple:serviceBean>
> >>>>>>>>   </simple:server>
> >>>>>>>>
> >>>>>>>> <camelContext id="camel"
> >>>>>>>> xmlns="http://activemq.apache.org/camel/schema/spring";>
> >>>>>>>>     <route>
> >>>>>>>>       <from uri="cxf://SpringBean=server1"/>
> >>>>>>>>       <to uri="cxf://SpringBean=client1"/>
> >>>>>>>>     </route>
> >>>>>>>> </camelContext>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>> Can you explain a bit what this route is supposed to do ?
> >>>>>>> Is this supposed to accept requests on
> >>>>>>>    http://localhost:8080/simpleWithAddress
> >>>>>>> and route them to an external service on
> >>>>>>>    http://localhost:9000/foo2
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>> Yes , it is exactly working as your said.
> >>>>>> I just omitted the address information from the endpoint URI , because
> >>>>>> they are already in the Spring bean's configuration.
> >>>>>>
> >>>>>> Willem.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>
> >>>
> >>
> >
> >
> >
>
>


-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/

Reply via email to