Is there any class like Endpoint.publish(address, implementor)
to expose the service? I am trying to deploy my application on Tomcat. Is there any class in CXF or JAX-RS to expose REST web service?
You will need to annotate your APIs in the serviceBean with javax.ws.rs
based annotations representing HTTP methods like GET
, PUT
, POST
, DELETE
, etc. This will expose your APIs to the JAX-RS server you will need to create in CXF configuration XML. Something like this -
<jaxrs:server id="base" address="/">
<jaxrs:providers>
<ref bean="provider1" />
<ref bean="provider2" />
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref bean="serviceBean" />
</jaxrs:serviceBeans>
</jaxrs:server>
This configuration file is the same one that gets mentioned as the <context-param>
contextConfigLocation in your web.xml
In case you are not using Spring, the creation of the JAX-RS server can be done programmatically using:
JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
sf.setResourceClasses(abc.class);
List providers = new ArrayList();
sf.setProviders(providers);
sf.setAddress(ENDPOINT_ADDRESS);
server = sf.create();
But I don't see the point of using CXF without Spring.
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments