cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrei Shakirin <ashaki...@talend.com>
Subject RE: Need a generic service impl for any given WSDL Definition
Date Wed, 15 Apr 2015 08:54:04 GMT
Hi Sathwik,

Regarding your requirement: in this case, do you really need to specify the wsdl in your provider
service?
Do you use WS-Polices or schema validation?
If no, I would suggest just to publish it without wsdl location. 

Regards,
Andrei.

> -----Original Message-----
> From: Sathwik B P [mailto:sathwik.bp@gmail.com]
> Sent: Mittwoch, 15. April 2015 05:46
> To: users@cxf.apache.org
> Subject: Re: Need a generic service impl for any given WSDL Definition
> 
> Hi Adrei,
> 
> Thanks for your response.
> 
> The requirement is,
> "There would be one generic service implementation class for ANY given WSDL
> definition". Irrespective of the service names, port names, wsdl operations, all
> requests coming in should land on the same service implementation method.
> 
> HelloWorld.wsdl -> CommonProviderService
> Greeter.wsdl      -> CommonProviderService
> Stock.wsdl        -> CommonProviderService
> 
> Henceforth I cannot embed the portName or the service names in the Provider
> class.
> 
> This service is like a passthrough, the payload will be consumed and response
> will be generated by our runtime components in the system.
> 
> 
> *Update:*
> *I could get over the previous error by explicitly setting the serviceName and
> endpointName in the bean.*
> 
> *But now I don't see the service registered under CXFNoSpringSevlet and
> neither do I get the publised WSDL from the service.*
> 
> regards,
> sathwik
> 
> On Wed, Apr 15, 2015 at 12:48 AM, Andrei Shakirin <ashakirin@talend.com>
> wrote:
> 
> > Hi,
> >
> > The error message says that service name in your wsdl doesn't match to
> > default service name generated on the base of CommonProvider class.
> > You can configure service name using @WebServiceProvider annotation:
> >
> > @WebServiceProvider(portName = " CommonProvider", serviceName = "
> > CommonProviderService ",
> >                       targetNamespace = " http://provider.example/)
> > @ServiceMode(value=Service.Mode.PAYLOAD)
> >  public class CommonProvider implements Provider<Source> {...}
> >
> > By the way there is more portable way to create service implementing
> > Provider interface: using javax.xml.ws.Endpoint.
> > Take a look this example for details:
> > https://github.com/apache/cxf/blob/master/distribution/src/main/releas
> > e/samples/jaxws_dispatch_provider/src/main/java/demo/hwDispatch/server
> > /Server.java
> >
> > Regards,
> > Andrei.
> >
> >
> > > -----Original Message-----
> > > From: Sathwik B P [mailto:sathwik.bp@gmail.com]
> > > Sent: Dienstag, 14. April 2015 11:26
> > > To: users@cxf.apache.org
> > > Subject: Need a generic service impl for any given WSDL Definition
> > >
> > > Hi Guys,
> > >
> > >
> > > We need to create cxf services from wsdl definitions. There would be
> > > one generic service implementation class for any given WSDL service.
> > >
> > > So I suppose implementation of javax.xml.ws.Provider interface would
> > > the
> > right
> > > choice here.
> > >
> > > I have been working with ReflectionServiceFactoryBean and
> > > JaxWsServiceFactoryBean but not been able to create the service at all.
> > >
> > > Here is the code snippet,
> > >
> > >         URL resource =
> > > getClass().getResource("/examples/client/HelloWorld.wsdl");
> > >         Bus bus = BusFactory.newInstance().createBus();
> > >         ReflectionServiceFactoryBean bean = new
> > ReflectionServiceFactoryBean();
> > >         bean.setWsdlURL(resource.toString());
> > >         bean.setBus(bus);
> > >         bean.setPopulateFromClass(false);
> > >         bean.setServiceClass(CommonProvider.class);
> > >         bean.create();
> > >
> > >
> > >         @WebServiceProvider()
> > >         @ServiceMode(value=Service.Mode.PAYLOAD)
> > >         public class CommonProvider implements Provider<Source>
> > > {...}
> > >
> > >
> > > *Error:org.apache.cxf.service.factory.ServiceConstructionException:
> > Could not
> > > find definition for service {
> > http://provider.example/}CommonProviderService
> > > <http://provider.example/}CommonProviderService>.*
> > >
> > > It's pretty much the code from ProviderServiceFactoryTest
> > >
> > > What am I missing here?
> > >
> > > regards,
> > > sathwik
> >
Mime
View raw message