Great, exactly what I was looking for.
I have written a Provider<Source> implementation. Because a "god"
implementation in the invoke method of the provider is evil, I have built some
kind of a dispatcher that delegates the implementation of the web service
operations to their own classes.
Therefore the Provider<Source> code is now completely generic - except for the
annotations:
@WebServiceProvider(portName = "GreeterPort", serviceName = "GreeterService",
targetNamespace = "http://apache.org/hello_world_soap_http",
wsdlLocation = "/wsdl/hello_world_wrap.wsdl")
@ServiceMode()
public class SourceProvider implements Provider<Source> {...}
Is it also possible to just annotate the class with "@WebServiceProvider"
(without annotation arguments) and add port, wsdl location etc in the endpoint
configuration?
My endpoint config currently looks like this:
@Bean
public Endpoint greeterEndpoint() {
EndpointImpl endpoint = new EndpointImpl(cxfBus, SourceProvider());
endpoint.getFeatures().add(new LoggingFeature());
endpoint.publish(servicePath);
return endpoint;
}
Thanks a lot
Stephan
-----Ursprüngliche Nachricht-----
Von: Daniel Kulp <[email protected]>
Gesendet: Mittwoch, 29. August 2018 20:47
An: [email protected]; Burkard Stephan <[email protected]>
Betreff: Re: CXF without generated Java objects?
The JAX-WS “Provider” interface is used to create services that consume generic
XML. You could then use normal javax.xml.transform stuff to transform the XML.
You could look at the jaxws_dispatch_provider sample:
https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jaxws_dispatch_provider
<https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jaxws_dispatch_provider>
It has a GreeterDOMSourcePayloadProvider which implements Provider<DOMSource>.
Dan
> On Aug 16, 2018, at 7:09 AM, Burkard Stephan <[email protected]>
> wrote:
>
> Hi Colm
>
> Thanks. The "xslt-server" in this test is a "normal" CXF endpoint that
>
> - references the WSDL (and generates Java objects from it)
> - references an implementor class
> org.apache.cxf.systest.soap.DoubleItImpl that creates a response
>
> Then the generated response is post-processed with XSL.
>
> ==> Is this the targeted use case for the XSLT feature?
>
>
> In my case the service implementation is completely XSL. Therefore
>
> - I don't need generated Java objects
> - I don't need an implementor class
>
> I just want to
>
> - check request security (CXF validators)
> - transform the client request (XSLT feature)
> - continue with the result from the transformation (this can be a
> response, but also a request for a downstream call, it depends)
>
> ==> Can I create a CXF web service without Java objects/implementation?
>
> Thanks
> Stephan
>
>
> -----Ursprüngliche Nachricht-----
> Von: Colm O hEigeartaigh <[email protected]>
> Gesendet: Donnerstag, 16. August 2018 11:14
> An: [email protected]
> Betreff: Re: CXF without generated Java objects?
>
> On Mon, Aug 13, 2018 at 12:04 PM, Burkard Stephan
> <[email protected]
>> wrote:
>
>>
>> I also read about the [XSLT feature](http://cxf.apache.
>> org/docs/xslt-feature.html) of CXF. The configuration examples
>> reference an implementor class, but how would this class look like,
>> what are input and return types of the operations if I don't have generated
>> classes?
>> Unfortunately I did not found a good example project that uses this
>> feature. Is there such a project in the CXF repository?
>>
>
> For an example project that uses the XSLT feature, please refer to the
> following system test:
>
> Client code:
>
> https://github.com/apache/cxf/blob/master/systests/uncategorized/src/t
> est/java/org/apache/cxf/systest/soap/XSLTFeatureTest.java
>
> Server spring configuration:
>
> https://github.com/apache/cxf/blob/master/systests/uncategorized/src/t
> est/resources/org/apache/cxf/systest/soap/xslt-server.xml
>
> Colm.
>
>
>>
>> Thanks for your help
>> Stephan
>>
>>
>>
>
>
> --
> Colm O hEigeartaigh
>
> Talend Community Coder
> http://coders.talend.com
--
Daniel Kulp
[email protected] <mailto:[email protected]> - http://dankulp.com/blog
<http://dankulp.com/blog> Talend Community Coder - http://talend.com
<http://coders.talend.com/>