Restlet çeşitli sunucu "konnektörleri" ile ilgili web hizmetleri çalıştırmak sağlar ve başka bir sunucudan geçiş oldukça kolaydır. Web hizmetlerimizi normalde bir Sun Glassfish Java EE uygulama sunucusu kümesinde çalıştırıyoruz, ancak bunları test etmek için web servislerini bağımsız bir uygulama olarak çalıştırmak için Simple HTTP Server ile bağlantı veren bir bağlayıcı kullanıyoruz. Ayrıca AsyncWeb, Jetty, Grizzly ve bir iç HTTP sunucusu için sunucu bağlaçları da vardır.
İstemci tarafında, Restlet istemci kitaplığını dikkate almalısınız. Oldukça özlü ve Restlet sunucularıyla iyi uyum sağlamak için tasarlandı. Apache HTTP İstemcisi bağlayıcısını kullanıyoruz.
Test için, Fetcher sınıfını oluşturduk. Bu Restlet istemci API'sı kullanılarak uygulanır. Kullanmak için, hemen hemen getir() yöntemini çağırın: ("http://localhost:8182" demek) web hizmetleri temel tanım üzerine verilen kaynağın adı tacks)
DTO person = fetch("/employee/1234");
DTO department = fetch("/department/" + person.getDepartment());
Fetch (e Restlet istemci API kullanır XML gösterimini getirip, getirilen XML'i bir veri aktarım nesnesine (POJO) gönderir.
Bunun gerçekten ünite testini oldukça kolaylaştırdığını görebilirsiniz. Ünite testlerinden önce, web servislerini Simple veya Jetty gibi bağımsız bir sunucuda tetiklersiniz. Ünite testleri sırasında, DTO'ları, DOM ağaçlarını, json.org nesnelerini veya Fetcher'ı kullanarak ne varsa getirin, ardından geri döndürülenlere test onaylamaları uygulayın. Daha ayrıntılı bir seviyede test etmeniz gerekirse, Restlet istemci kodunu doğrudan kullanabilirsiniz.
Sorunun tam noktası, bir web hizmetinin/bileşeninin işlemin nasıl başlatılacağını bulmaktı. Uzak bir sunucuda istemiyorum/çalışamıyorum. Hizmetin bir web hizmeti olarak sunulmadan ÖNCE alay edilen örneklerle başlatılması gerekir. Bir sınıfın/bileşenin INSTANCE'ı bir hizmet olarak ortaya koymanın bir yolu var mı? – IgorM
herhangi bir cevap? IgorM - çalıştın mı? – Vatsala