blob: 7faebf6491c81722c85370c59defe681e9d442e2 [file] [log] [blame]
== Spring Boot - Samples - CXF Rest Web Services
This sample project demonstrates how to use CXF JAX-RS services
with Spring Boot. This demo has two JAX-RS class resources being auto-discovered
and deployed in a single JAX-RS endpoint.
The application registers itself with Eureka Registry.
The client discovers the client address from the registry and invokes it.
Make sure that the Eureka registry is started as described in the eureka-registry/README
before running this application.
= Starting the server =
The sample uses Maven. It can be built and run from the command line using Maven, Java or Docker:
---- With Maven ----
$ mvn spring-boot:run
---- With Java ----
$ java -jar target/spring-boot-sample-rs-scan-app.jar
---- With Docker ----
Install Docker, create the demo image:
--
$ mvn dockerfile:build
--
Optional step, push the image.
Create a DockerHub id, for example, make this id set to your current ${username}
--
$ docker login
$ mvn dockerfile:push
--
Run the container:
By default it is expected that EUREKA_SERVER_URI environment variable is passed and set to
"http://{docker.host}" where you can find the value of {docker.host} by running 'ifconfig' and checking
the IP address of the docker bridge 'docker0'.
--
docker run -p 8080:8080 -e EUREKA_SERVER_URI='http://{docker.host}' -t ${username}/apachecxf:spring-boot-sample-rs-scan-app
--
Alternatively you can run the docker in the 'host' network mode.
--
docker run -p 8080:8080 --network="host" -t ${username}/apachecxf:spring-boot-sample-rs-scan-app
--
= Testing the server =
---- From the browser ----
http://localhost:8080/services/helloservice/sayHello/ApacheCxfUser
will display "Hello ApacheCxfUser, Welcome to CXF RS Spring Boot World!!!"
http://localhost:8080/services/helloservice/sayHello2/ApacheCxfUser
will display "Hello2 ApacheCxfUser, Welcome to CXF RS Spring Boot World!!!"
---- From the command line ----
Check client/README on how to run a command line client.
= Swagger JSON and UI =
http://localhost:8080/services/helloservice/swagger.json will return a Swagger JSON
description of services.
To view the Swagger document using Swagger-UI, use your Browser to
open the Swagger-UI page at
http://localhost:8080/services/helloservice/api-docs?url=/services/helloservice/swagger.json
or access it from the CXF Services page:
http://localhost:8080/services/helloservice/info
and follow a Swagger link.
(Note - CXF Services page is available by default at the path ending with "/services" - but in this demo
it has been configured to listen at "/info")
= System metrics and health checks =
http://localhost:8080/system/metrics
will expose all registered Spring Actuator metrics
http://localhost:8080/system/health
will expose all registered Spring Actuator health checks