cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christian Vest Hansen" <karmazi...@gmail.com>
Subject Re: how clients handle changing wsdls
Date Wed, 31 Oct 2007 00:15:40 GMT
Thanks Daniel.


2007/10/30, Daniel Kulp <dkulp@apache.org>:
>
>
> I just committed a fix for this on trunk.     It logs a warning for each
> unavailable operation, then removes the operations from the ServiceModel
> so they won't be invokable.
>
> Dan
>
>
> On Monday 29 October 2007, Daniel Kulp wrote:
> > There's a JIRA logged someplace about this:
> > http://issues.apache.org/jira/browse/CXF-940
> >
> > I'd like to get it logged on client side, but fail on server side.
> > That's a bit more complicated since the code in question is completely
> > shared between the two and it really doesn't know what it's
> > targetting.
> >
> > I suppose we could just log a warning.   If a service is created
> > without a backing method and someone tries to invoke it, a fault would
> > be raised.
> >
> > Dan
> >
> > On Thursday 25 October 2007, Christian Vest Hansen wrote:
> > > I recall seing a stack trace like that, which prompted my query.
> > >
> > > But if it, in this particular use case, always works if the client
> > > refer directly to the ?wsdl from the online service, then it's just
> > > something to keep in mind when creating clients.
> > >
> > > However, this confuses me:
> > > > I think if you still use the old wsdl to create the service , the
> > > > client can still work.
> > >
> > > (...)
> > >
> > > > On the client side if I use the ?wsdl which is generated by CXF to
> > > > create the service ,
> > > > the client  can still work.
> > >
> > > This sounds contradictory to me, given that one of thos scenarios
> > > resulted in the stack trace you provided.
> > > Could you clarify?
> > >
> > > 2007/10/25, Willem Jiang <ning.jiang@iona.com>:
> > > > Hi Christian,
> > > >
> > > > I think if you still use the old wsdl to create the service , the
> > > > client can still work.
> > > >
> > > > I just did a quick test for your case by remove the WSDL2Java
> > > > generated SEI's method.
> > > > It can reproduce your case.
> > > > On the client side if I use the ?wsdl which is generated by CXF to
> > > > create the service ,
> > > > the client  can still work. But if I specified the orginal WSDL ,
> > > > I got the below exception.
> > > >
> > > > Caused by:
> > > > org.apache.cxf.service.factory.ServiceConstructionException: Could
> > > > not find a matching method for operation
> > > > {http://apache.org/hello_world_soap_http}greetMeOneWay
> > > >     at
> > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initia
> > > >li zeWSDLOperations(ReflectionServiceFactoryBean.java:323) at
> > > > org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeWSD
> > > >LO perations(JaxWsServiceFactoryBean.java:184) at
> > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildS
> > > >er viceFromWSDL(ReflectionServiceFactoryBean.java:214) at
> > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initia
> > > >li zeServiceModel(ReflectionServiceFactoryBean.java:269) at
> > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create
> > > >(R eflectionServiceFactoryBean.java:146) at
> > > > org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsS
> > > >er viceFactoryBean.java:91) at
> > > > org.apache.cxf.frontend.AbstractEndpointFactory.createEndpoint(Abs
> > > >tr actEndpointFactory.java:94) at
> > > > org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean
> > > >.j ava:50) at
> > > > org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyF
> > > >ac toryBean.java:89) at
> > > > org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:372)
> > > > at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:271)
> > > >
> > > > Any thoughts?
> > > >
> > > > Willem.
> > > >
> > > > Christian Vest Hansen wrote:
> > > > > If you generate a java client from a wsdl, and then add an
> > > > > operation to the wsdl but forget to update the client code - how
> > > > > does CXF handle that situation?
> > > > >
> > > > > Will the client crash or blissfully hum along (but withut being
> > > > > able to invoke the new operation)?
> > > > >
> > > > > I'm asking because it might influence decisions and policies one
> > > > > might define for managing change and backwards compatibility
> > > > > when working with CXF web services and clients.
>
>
>
> --
> J. Daniel Kulp
> Principal Engineer
> IONA
> P: 781-902-8727    C: 508-380-7194
> daniel.kulp@iona.com
> http://www.dankulp.com/blog
>


-- 
Venlig hilsen / Kind regards,
Christian Vest Hansen.

Mime
View raw message