cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jiang Ning <ning.ji...@iona.com>
Subject Re: Questions about CodeFirst in client side
Date Thu, 12 Oct 2006 09:13:56 GMT
Jiang Ning wrote:

> Hi Dan,
>
> Dan Diephouse wrote:
>
>> Jiang Ning wrote:
>>
>>> Hi Dan
>>>
>>> I am working on the CXF-18 to implement the addport() API,  so I 
>>> need to build service model from code(there is no wsdl url), and 
>>> create Endpoint for Dispatch.
>>
>>
>>
>> So this service model is created from a class which extends the 
>> Jax-ws service class? In reflectionservicefactory there is a 
>> stopClasses list. We should tell the ServiceFactory to introspect all 
>> the methods, but stop at the JAX-WS Service class using that mechanism.
>>
> [Willem] IMO ServiceFactory's code for intorspecting all the methods 
> can be taken out as util method, and that could be easy for the JAX-WS 
> Service class to reuse.
>
>>> So I just do a quick reading about you CodeFirstTest in the 
>>> frontend-jaxws and find out that the (code first) client side don't 
>>> actual invoke the method.
>>
>>
>>
>> Which method doesn't it invoke?
>
>
> [Willem]  I mean the client side is not actually create an client 
> proxy from SEI class to invoke the server's method in the CodeFirstTest.
> When I finish this task, I may have a unit test of that :).

[Willem] Sorry, I mix up the JAXWS Unit test and system test.

>
>>
>>> I just want to ask if you have any plan to implements this or I will 
>>> try to get this work.
>>
>>
>>
>> I wasn't planning on working on it, but I think you could use the 
>> BindingInfoFactories to get the addPort to work and then create a 
>> dummy EndpointInfo in the service model. You shouldn't have to create 
>> a whole new service model because there is already one there in Service
>
>
> [Willem]  Here is the  user  side code for addPort.
>
> service = Service.create(qname);
> service.addPort(qname, HTTPBinding.HTTP_BINDING, url);
> Dispatch<Source> dispatcher = service.createDispatch(new QName("", ""),
>                                       Source.class, 
> service.Mode.PAYLOAD);
>
> The sevice model would not be created in Service because there is no 
> wsdl for Service.
> IMO the service model will be created in createDispatch where we can 
> get the SEI.
>
[Willem] Here is my mistake for the createDispatch, the Source.class is 
not the SEI.
For the Dispatch usecase , Dispatch just need to get part of information 
of serviceModel.
HTTPBinding.HTTP_BINDING used for loading the transport and address to 
init the condit.
So the BindingInfo could be useless in this usecase.

>> - Dan
>>
>
> Willem
>
>
Willem


Mime
View raw message