In this series of guide, we are going to explore writing REST services with Apache CXF using Spring Boot.
The project is build using maven. I assume that you already know how to use maven.
Step 1 : Adding dependencies for Spring Boot
By default you have to inherit the parent pom of spring boot, but that cannot be followed everytime, so I use an alternative to that. I basically add spring boot pom as dependency so that it brings all the dependencies.
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring.version>1.4.3.RELEASE</spring.version> <cxf.version>3.1.10</cxf.version> </properties> <dependencies> <dependency> <!-- Alternative to inheriting from parent spring pom --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring.version}</version> <type>pom</type> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxrs</artifactId> <version>${cxf.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> <version>2.8.5</version> </dependency> </dependencies>
Step 2: Package structure of application
We can create some basic packages to have an outline of what code will go where and its basically good idea to have a general outline of the application ready. Following are the packages that we will make for now
- config
- dao
- models
- rest
- services
- utils
Step 3 : Spring Boot Starter class
When writing spring boot, you have to create an Application class or in this case i call it Starter class. This class is main class that is the entry point of your packaged spring boot (more on this later). It looks like as below
package org.blog; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * Created by Anand_Rajneesh on 3/23/2017. */ @SpringBootApplication public class Starter { public static void main(String[] args) { SpringApplication.run(Starter.class, args); } }
@SpringBootApplication does a bunch of stuff under the hood, it basically tells the Spring to do package scan to identify component classes, configuration classes etc.
Step 4 : Writing CXF Service
In rest package that we created in Step 2, create a new class Ping. This will be basically our health check class which would return 200 ok if everything is ok with the service.
package org.blog.rest; import org.springframework.stereotype.Service; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.core.Response; /** * Created by Anand_Rajneesh on 3/24/2017. */ @Path("/ping") @Service public class Ping { @GET public Response health(){ return Response.ok().build(); } }
Ping class has two annotations : @Service to register it as Spring component. @Path – to specify the url on which the service will be accessible
Step 6 : Enabling CXF
Create an application.properties file in resources folder. Add below line to it
cxf.jaxrs.component-scan=true
This tells cxf to look for Spring components which might act as JAX-RS resources, providers and other extensions.
That’s it, you have basic REST application set up here.
Now package your jar by running mvn package and then start it.
Use url http://localhost:8080/services/ping and it should give a 200 ok back in response.
What you can do on your own is look at the various JAX-RS annotations, play with status codes and http methods. Create more services and experiment.
More on the cxf servlet path configuration and more features of cxf later..
I have to appreciate you for your great work which you had done in your blog.i want you to add more like this.
ReplyDeleteJAVA Training in Chennai
Best JAVA Training institute in Chennai
SEO training in chennai
Python Training in Chennai
Selenium Training in Chennai
Big data training in chennai
Selenium Training in Chennai
JAVA Training in Chennai
Java Training in Anna Nagar
l;';
ReplyDeleteThank you for the informative post. It was thoroughly helpful to me. Keep posting more such articles and enlighten us.
ReplyDeleteBig Data Hadoop Training In Chennai | Big Data Hadoop Training In anna nagar | Big Data Hadoop Training In omr | Big Data Hadoop Training In porur | Big Data Hadoop Training In tambaram | Big Data Hadoop Training In velachery
Machine Learning Projects for Final Year machine learning projects for final year
ReplyDeleteDeep Learning Projects assist final year students with improving your applied Deep Learning skills rapidly while allowing you to investigate an intriguing point. Furthermore, you can include Deep Learning projects for final year into your portfolio, making it simpler to get a vocation, discover cool profession openings, and Deep Learning Projects for Final Year even arrange a more significant compensation.
Python Training in Chennai Python Training in Chennai Angular Training
Machine Learning Projects for Final Year machine learning projects for final year
ReplyDeleteDeep Learning Projects assist final year students with improving your applied Deep Learning skills rapidly while allowing you to investigate an intriguing point. Furthermore, you can include Deep Learning projects for final year into your portfolio, making it simpler to get a vocation, discover cool profession openings, and Deep Learning Projects for Final Year even arrange a more significant compensation.
Python Training in Chennai Python Training in Chennai Angular Training Project Centers in Chennai
You should be a piece of a challenge for probably the best website on the web. I will suggest this site!
ReplyDeletebest interiors
no deposit bonus forex 2021 - takipçi satın al - takipçi satın al - takipçi satın al - takipcialdim.com/tiktok-takipci-satin-al/ - instagram beğeni satın al - instagram beğeni satın al - google haritalara yer ekleme - btcturk - tiktok izlenme satın al - sms onay - youtube izlenme satın al - google haritalara yer ekleme - no deposit bonus forex 2021 - tiktok jeton hilesi - tiktok beğeni satın al - binance - takipçi satın al - uc satın al - finanspedia.com - sms onay - sms onay - tiktok takipçi satın al - tiktok beğeni satın al - twitter takipçi satın al - trend topic satın al - youtube abone satın al - instagram beğeni satın al - tiktok beğeni satın al - twitter takipçi satın al - trend topic satın al - youtube abone satın al - instagram beğeni satın al - tiktok takipçi satın al - tiktok beğeni satın al - twitter takipçi satın al - trend topic satın al - youtube abone satın al - instagram beğeni satın al - perde modelleri - instagram takipçi satın al - instagram takipçi satın al - cami avizesi - marsbahis - betboo
ReplyDeleteinstagram takipçi satın al
ReplyDeleteinstagram takipçi satın al
takipçi satın al
takipçi satın al
instagram takipçi satın al
takipçi satın al
instagram takipçi satın al
aşk kitapları
tiktok takipçi satın al
instagram beğeni satın al
youtube abone satın al
twitter takipçi satın al
tiktok beğeni satın al
tiktok izlenme satın al
twitter takipçi satın al
tiktok takipçi satın al
youtube abone satın al
tiktok beğeni satın al
instagram beğeni satın al
trend topic satın al
trend topic satın al
youtube abone satın al
beğeni satın al
tiktok izlenme satın al
sms onay
youtube izlenme satın al
tiktok beğeni satın al
sms onay
sms onay
perde modelleri
instagram takipçi satın al
takipçi satın al
tiktok jeton hilesi
pubg uc satın al
sultanbet
marsbahis
betboo
betboo
betboo
takipçi satın al
ReplyDeleteinstagram takipçi satın al
https://www.takipcikenti.com
hangiborsada.com
ReplyDeleteshiba hangi borsada
shib hangi borsada
Btcturk Komisyon Oranları
Paribu Komisyon Oranları
BitTurk Güvenilir mi
Güvenilir Bitcoin Borsası Türkiye
Hangi Bitcoin Borsası Daha İyi?
En Büyük Bitcoin Borsası
Binance Komisyon Oranları
seo fiyatları
ReplyDeletesaç ekimi
dedektör
instagram takipçi satın al
ankara evden eve nakliyat
fantezi iç giyim
sosyal medya yönetimi
mobil ödeme bozdurma
kripto para nasıl alınır
instagram beğeni satın al
ReplyDeleteyurtdışı kargo
seo fiyatları
saç ekimi
dedektör
fantazi iç giyim
sosyal medya yönetimi
farmasi üyelik
mobil ödeme bozdurma
Smm panel
ReplyDeletesmm panel
iş ilanları
instagram takipçi satın al
hirdavatciburada.com
https://www.beyazesyateknikservisi.com.tr
SERVİS
tiktok jeton hilesi
kadıköy arçelik klima servisi
ReplyDeletekartal samsung klima servisi
ümraniye samsung klima servisi
kartal mitsubishi klima servisi
ümraniye mitsubishi klima servisi
beykoz vestel klima servisi
üsküdar vestel klima servisi
üsküdar bosch klima servisi
beykoz arçelik klima servisi
R-Studio Crack is powerful and also data recovery software. This software application helps you to get recover your deleted data. R-Studio Crack
ReplyDeleteSerial Key: · DVEFHS-RUFYGB-RFGCVR-RUYGUW · WIUWR-FBVRVR-RUVBNC-EUHFRBR · ESFGCV-EADGSXC-SFHSDC-ASFHXB · SFHAX-WRYSFG-Si Software
ReplyDeleteA new day, be open enough to see the opportunities. Be wise enough to be grateful. Be courageous enough to be happy. Happy Thursday. Thursday Quote Of The Day
ReplyDelete