EJB 3.1 kullanırken Adam Bien's blogunda bir makale okurken java'da yeni bir özellik keşfettim. Durum şu ki, Stateless ve Singleton çekirdekleri kök kaynaklar olarak açığa çıkarılabilir. Ama nasıl? Ben öyle yapmaya çalıştım: EJB 3.1 REST Web Hizmeti olarak nasıl gösteriliyor?
@Stateless
@LocalBean
@Path("Hybrid")
public class RESTEJBSample {
@GET
@Path("/demo")
@Produces(MediaType.TEXT_PLAIN)
public String something() {
return "I am a Hybrid!!!";
}
}
i URL'yi http://localhost:8080/HybridSample/resources/Hybrid/demo diyoruz
i 404 hatası alıyorum. Appart buve sadece JAXRS projeme çalışıyor olduğundan emin olmak için, ben iyi çalışıyor eğer sadece test etmek için basit pojo bir kaynak oluşturmuştur. İşte
@Path("/genericresource")
public class GenericResource {
@GET
@Path("/samplemethod")
@Produces(MediaType.TEXT_PLAIN)
public String saySomething() {
return "Something!";
}
}
i Düzgün çalışır URL'yi http://localhost:8080/HybridSample/resources/genericresource/samplemethod çağırdığınızda!
Yani benim sorular şunlardır: Benim EJB eksik ne
böyle sınıf GenericResource yapıyor gibi bir web hizmeti kaynak olarak çalışabilir böylece?
Bazı ek yapılandırma gerekli mi? Bir web hizmeti olarak EJB kullanırken
sınırlamalar nelerdir?
i ilki :) web.xml seçeneğini bilmiyordum İyi de benim favoutity, zaten böyle şu anda benim web.xml lookl olduğunu. Ayrıca Netbeans IDE 'New-> Webservice'ı kullandım ve bir sihirbazın ardından Vatansız fasulye olarak web hizmeti oluşturduğunu belirten bir seçeneği işaretliyorum. Bu eklenen EJB .war dosyasına ekledi ve şimdi iyi çalışıyor. Örneğim şimdi iyi çalışıyor, ancak olayın arkasında ne olduğunu bilmek isterdim, Net Beans tarafından hangi dosyalar düzenleniyor? Ve ayrıca bu fasülyenin sınırlamaları nelerdir? Evet, bence bu gerçekten harika bir özellik. – sfrj
NetBeans hiçbir şey eklemiyor: Yapmanız gereken tek şey, Stateless sınıfını (örneğinizde RESTEJBSample) ve web.xml dosyasındaki sunucu adaptörünü oluşturmaktır. Servlet perde arkasındaki tüm büyüyü yapıyor. Sınırlamalarla ilgili olarak, sanırım sorunuzu biraz açıklığa kavuşturmaya çalışmalısınız. – perissf
Sınırlamaları derken, demek istediğim. Bu fasülyeler EJB-Modüllerinde konuşlandırıldıklarında aynı şekilde davranacak mı? Demek istediğim, manüel işlem yönetimine bir ihtiyaç var mı? JMS ile etkileşime girebilir mi? ... Şimdi EJB konteynerinde değiller, bir .war dosyasındalar. – sfrj