...
Publication of JAX-WS endpoints into well-known service registries such as Netflix Eureka Registry can be achieved similarly to the way JAX-RS endpoints are registered and is shown in a JAX-RS Spring Boot Scan demo.
Actuator
When the presence of the Spring Boot Actuator is detected, the application may benefit from metrics support auto-configuration (based on Micrometer library). The instrumentation layer automatically tracks the server-side metrics with respect to requests processing, and exposes it along with other metrics. For more details, please check Micrometer Integration documentation.
Examples
Consider the following Configuration instance:
Code Block | ||||
---|---|---|---|---|
| ||||
package sample.ws; import javax.xml.ws.Endpoint; import org.apache.cxf.Bus; import org.apache.cxf.jaxws.EndpointImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import sample.ws.service.HelloPortImpl; @Configuration public class WebServiceConfig { @Autowired private Bus bus; @Bean public Endpoint endpoint() { EndpointImpl endpoint = new EndpointImpl(bus, new HelloPortImpl()); endpoint.publish("/Hello"); return endpoint; } } |
...
Having a CXF JAX-WS starter alongside this Configuration is sufficient for enabling a CXF JAX-WS endpoint which will respond to SOAP request URI such as
...
Code Block | ||||
---|---|---|---|---|
| ||||
package sample.rs.service; import java.util.Arrays; import org.apache.cxf.Bus; import org.apache.cxf.endpoint.Server; import org.apache.cxf.jaxrs.JAXRSServerFactoryBean; import org.apache.cxf.jaxrs.swagger.Swagger2Feature; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import sample.rs.service.hello1.HelloServiceImpl1; import sample.rs.service.hello2.HelloServiceImpl2; @SpringBootApplication public class SampleRestApplication { @Autowired private Bus bus; public static void main(String[] args) { SpringApplication.run(SampleRestApplication.class, args); } @Bean public Server rsServer() { JAXRSServerFactoryBean endpoint = new JAXRSServerFactoryBean(); endpoint.setBus(bus); endpoint.setAddress("/"); // Register 2 JAX-RS root resources supporting "/sayHello/{id}" and "/sayHello2/{id}" relative paths endpoint.setServiceBeans(Arrays.<Object>asList(new HelloServiceImpl1(), new HelloServiceImpl2())); endpoint.setFeatures(Arrays.asList(new Swagger2Feature())); return endpoint.create(); } } |
Having a CXF JAX-RS starter alongside this Configuration is sufficient for enabling a CXF JAX-RS endpoint which will respond to HTTP request URI such as
...
Please also see a JAX-RS Spring Boot demo.
Auto Configuration
Spring Boot Application example shown in the Manual Configuration section can be simplified if the auto-discovery is enabled.
...
Code Block | ||||
---|---|---|---|---|
| ||||
cxf: jaxrs: component-scan: true classes-scan-packages: org.apache.cxf.jaxrs.swagger |
the application becomes simply:
Code Block | ||||
---|---|---|---|---|
| ||||
package sample.rs.service; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SampleScanRestApplication { public static void main(String[] args) { SpringApplication.run(SampleScanRestApplication.class, args); } } |
This application will enable a CXF JAX-RS endpoint which will respond to HTTP request URI such as
...
Please also see a JAX-RS Spring Boot Scan demo.