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 <[EMAIL PROTECTED]>:
> > > 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
[EMAIL PROTECTED]
http://www.dankulp.com/blog

Reply via email to