24 Aralık 2016 Cumartesi

Embeded Jetty

Server Sınıfı
Şu satırı dahil ederiz.
import org.eclipse.jetty.server.Server;
constructor
Dinlenilecek port belirtilir. Şöyle yaparız.
Server server = new Server(8112);
setHandler metodu
Şöyle yaparız.
ServletContextHandler context = new ServletContextHandler(...);
...
server.setHandler(context);
start ve join metodları
Şöyle yaparız.
try {
  server.start();
  server.join();
} catch (Throwable t) {
  t.printStackTrace(System.err);
}
ServletContextHandler Sınıfı
Giriş
Şu satırı dahil ederiz.
import org.eclipse.jetty.servlet.ServletContextHandler;
Açıklaması şöyle
Using a ServletContextHandler will create and manage the common ServletContext for all of the Servlets, Filters, Sessions, Security, etc within that ServletContextHandler. This includes proper initialization, load order, and destruction of the components affected by a ServletContext as well.
Constructor - server + path
Şöyle yaparız.
ServletContextHandler contextHandler = new ServletContextHandler(server, "/");
Constructor - options
Şöyle yaparız.
ServletContextHandler contextHandler = 
new ServletContextHandler(ServletContextHandler.NO_SESSIONS);
Context'e parent ve path vermediğimiz için daha sonra şöyle yaparız.
contextHandler.setContextPath("/");
server.setHandler(contextHandler);
addServlet metodu
Kendi servlet sınıfımız için şöyle yaparız.
contextHandler.addServlet(MyServlet.class, "/path");
Eğer Jersey ile birleştirmek istersek şöyle yaparız.
ServletHolder jerseyServlet = contextHanlder.addServlet(
 org.glassfish.jersey.servlet.ServletContainer.class, "/webapi/*");
Jersey servlet sınıfına bazı parametreler vermek gerekir. Şöyle yaparız. Böylece com.example paketindeki @Path olarak işaretli sınıflar yüklenir.
jerseyServlet.setInitOrder (1);
jerseyServlet.setInitParameter(
"jersey.config.server.provider.packages","com.example");
Sadece bir sınıfı yüklemek istersek şöyle yaparız.
jerseyServlet.setInitParameter(
"jersey.config.server.provider.classnames",Foo.class.getCanonicalName());
DefaultServlet Sınıfı
Giriş
Şu satırı dahil ederiz.
import org.eclipse.jetty.servlet.DefaultServlet;
Şöyle yaparız.
ServletHolder staticServlet = context.addServlet(DefaultServlet.class,"/*");
staticServlet.setInitParameter("resourceBase","src/main/webapp");
staticServlet.setInitParameter("pathInfoOnly","true");
ServletHolder Sınıfı
Şu satırı dahil ederiz.
import org.eclipse.jetty.servlet.ServletHolder;
Sanırım bu sınıf Jetty içindeki internal sınıflardan birisi ve direkt kullanılmamalı.

constructor
Şöyle yaparız.
ServletContextHandler context = new ServletContextHandler(...);
...
ServletHolder h = new ServletHolder(new ServletContainer());
setInitParameter metodu
Jersey ile kullanmak için şöyle yaparız.
h.setInitParameter(ServerProperties.PROVIDER_PACKAGES, "resources");



Hiç yorum yok:

Yorum Gönder