Java JAX-RS and Jersey kullanarak RESTful Servis yapımı
Java Eclipse Restful Servis(Jax-RS)
RESTFul servisimizi yapmak için önce yeni proje oluşturalım.
File => New => Dynamic Web Project.
Proje adı olarak ben MobileService ismini kullandım.
Oluşturulan projede WEB-INF klasörü altında web.xml dosyası oluşmalı.
Eğer yoksa web.xml dosyasını oluşturmak için
Proje (Sağ Tık) > Java EE Tools > Generate Deployment Descriptor Stub
Projemizi Maven projesine çevirelim.
Bunun için Proje(Sağ Tık) > Configure > Convert To Maven Project
Maven projesine çevirme işlemini tamamlayalım.
pom.xml dosyamıza Restful için gerekli jar dosyalarımızı ekleyelim.
- asm.jar
- jersey-bundle.jar
- json.jar
- jersey-server.jar
POM.XML
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>MobileService</groupId> <artifactId>MobileService</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <warSourceDirectory>WebContent</warSourceDirectory> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>asm</groupId> <artifactId>asm</artifactId> <version>3.3.1</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-bundle</artifactId> <version>1.19</version> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20140107</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>1.19</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> <version>1.19</version> </dependency> </dependencies> </project>
WEB.XML dosyamızı güncelleyelim.
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>MobileService</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>Jersey Web Application</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey Web Application</servlet-name> <url-pattern>/web/*</url-pattern> </servlet-mapping> </web-app>
Burada
url-pattern /web/* url-pattern
kısmında link üzerindeki yönlendirmeyi yapmak için ekledik. http://localhost:8080/MobileService/web/UserInfoService/
UserInfoService.java
Burada geçiçi bir Json Array oluşturdum.Link ile gönderilen parametreyide kullanacak örnek olması için.
package service; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.Response; import org.json.JSONArray; import org.json.JSONObject; @Path("/UserInfoService") public class UserInfoService { @GET @Produces("application/json") @Path("{param}") public Response getUser(@PathParam("param") String deger) throws Exception { JSONArray array = new JSONArray(); JSONObject jsonObject = new JSONObject(); String ad = deger; String numara = "0535"; jsonObject.put("ad", ad); jsonObject.put("no", numara); array.put(jsonObject); array.put(jsonObject); array.put(jsonObject); return Response.status(200).entity(array.toString()).build(); } }
Servisimizi hazırladık.Projemiz jar dosyalarını güncellemesi için sırayla adımları uygulayalım
Ve RUN !
Tomcat ayağa kalktıktan sonra web tarayıcımızdan serverımızı tetikleyelim.
http://localhost:8080/MobileService/web/UserInfoService/COBAN