Merhaba arkadaşlar, bu yazımda yeni bir proje için kurulum ve tanıtımlardan bahsedeceğim.
Derslerde IDE olarak Eclipse kullanacağım. Eclipse indirmek için tıklayın. Application server olarak Apache Tomcat kullanacağım. Apache Tomcat kurulumu için şu yazıya bakınız.
Yeni bir dinamik web projesi oluşturalım ve bu projemizin bağımlılıklarını yönetmek için projemizi maven projesine convert edelim. Projemize sağ tıklayarak aşağıdakileri işlemleri yaparak maven projesine convert edebilirsiniz:
Oluşturulan pom.xml dosyasına JAX-RS Resteasy için aşağıdaki bağımlılıkları ekleyelim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-servlet-initializer</artifactId> <version>3.5.0.Final</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxrs</artifactId> <version>3.5.0.Final</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jackson-provider</artifactId> <version>3.5.0.Final</version> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20180130</version> </dependency> |
Daha sonra sağ tıklayarak Run As=>Maven Install diyerek bağımlılıkları download edelim. Şimdi bir model sınıfı oluşturalım:
1 2 3 4 5 6 7 8 |
public class Person { private int id; private String name; private String surname; //Getter and Setter } |
Register Application
JAX-RS de bir sınıf tanımlanıp bu sınıfa service sınıfları kaydedilir. Böyle bir sınıfı kullanmamızın amacı bir .xml dosyasında bir servlet tanımlamak yerine @ApplicationPath notasyonu ile servlet oluşturmak ve serviceleri paketlemek için kullanırız.
Bu kaydetme(paketleme) işlemi için 2 yöntem kullanılır:
1-)getSingletons() metodu
2-)getClasses() metodu
Bunların arasındaki fark şudur: Singletons yöntemi bütün http isteklerine karşılık bir tane service sınıfı objesi oluşturur yada her istek sonrası yeni bir service sınıfı objesi oluşturur(per-request object)(getClasses()).
Şimdi Register Application sınıfımızı yazalım:
Şimdi RestApplication adıyla bir sınıf oluşturup javax.ws.rs.core.Application sınıfını extend edelim. Daha sonra getClasses() metodunu Override edelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import java.util.HashSet; import java.util.Set; import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; @ApplicationPath("application") public class RestApplication extends Application { @Override public Set<Class<?>> getClasses() { Set<Class<?>>list=new HashSet<>(); list.add(RestService.class); return list; } } |
Burada yazımı bitiriyorum. Diğer yazılarımda görüşmek üzere…