İçindekiler:
- Bir web hizmetini tanımlama
- Web hizmetinizin amacı uzak istemcilerin sağladığınız hizmetlere erişmesine izin vermektir.
- Bu bölümde, düzenli bir Java sınıfı ve daha sonra stateless oturum EJB kullanan bir senkron web hizmeti oluşturursunuz. İlk olarak, arka uç bileşenini yazmanız gerekir. Bu, bir Java sınıfı, bir stateless EJB veya bir JMS yöntemi tüketici olacaktır.
Video: Words at War: Apartment in Athens / They Left the Back Door Open / Brave Men 2024
A web servisi , TCP / IP aracılığıyla müşterilere sunulan uzaktan yordamdır ve genellikle HTTP veya SMTP'yi aktarım olarak ve kodlama için XML kullanır. Web hizmeti, hizmet açıklaması adı verilen standart XML gösterimini kullanarak açıklanmıştır. Bir web servisi tek bir görevi veya bir dizi görevi yerine getirir.
Web hizmetinin tüm ayrıntıları kullanıcıdan gizlenmiş ve hizmet donanım ve yazılımdan bağımsızdır. Bu, yazılım geliştiricilerini, daha karmaşık görevleri yerine getirmek için daha sonra tek başlarına veya gruplar halinde kullanılabilen küçük, bireysel servislerden oluşan uygulamaları oluşturmaya teşvik eder.
Web hizmetini iki yolla oluşturabilirsiniz: manuel, Java kaynak ve yapılandırma dosyaları oluşturma veya WebLogic Workshop adı verilen bir GUI sistemi kullanarak. Bu makalede, manuel olarak bir web servisi oluşturursunuz.
Bir web hizmetini tanımlama
Web hizmetinizi oluşturmadan önce, ne yapılacağını tanımlamalısınız. Bu, web hizmetinizle iletişim kurmak istiyorsanız, diğer uygulamaların uyması gereken arayüzü düzgün bir şekilde oluşturmanıza olanak tanır.
Senkron hizmet- Eşzamansız hizmet
- A
eşzamanlı web servisi, , web hizmeti bir ileti aldığında başlar. Bu web servisi hemen yanıt verir. Senkron web hizmetleri, istemci programı istekten derhal geri gönderilen verileri istediğinde en kullanışlıdır. Bu tür verilere bir örnek, belirli bir şirketin mevcut hisse senedi fiyatını gösterir.
eşzamansız web servisi eşzamansızdır, bu nedenle mesajlar istemci ve web servisi arasında serbestçe değiştirilebilir. Bir taraftan gelen bir mesaj diğerinin karşılık gelen bir mesaj göndermesine mecbur değildir. Bir istemci zaman uyumsuz bir web hizmetine bir ileti gönderdiğinde, istemci web hizmetinden geri gelen bir ileti beklemiyor. Web servisi daha sonra istemciye bir mesaj gönderebilir; ancak bu mesajı istemcinin gönderdiği orijinal mesaja bağlar. Asenkron web hizmetleri, yanıt gerektirmeyen bir bilgi gönderirken iyi bir seçimdir. Örneğin, birkaç sunucunuza bir mesaj göndererek kullanıcılara göstermek üzere yeni bir selamlama mesajı isteyebilirsiniz.
Bir arka uç bileşeni seçme ve oluşturma
Web hizmetinizin amacı uzak istemcilerin sağladığınız hizmetlere erişmesine izin vermektir.
arka uç bileşeni, olarak adlandırılan bu hizmetler, Java kodu biçimini alır.Arka plan bileşeninizi aşağıdakilerden biri olarak oluşturabilirsiniz: Stateless oturum yöntemi EJB
- Java sınıfı
- yöntemi Bir JMS yöntemi tüketici
- WebLogic, bu öğelerden herhangi birini kullanılabilir duruma getirebilir bir web servisi. Bu, mevcut Java kodunu bir web hizmeti olarak paketlemeyi kolaylaştırır. Zaten stateless oturum EJB'lerini oluşturduysanız, onları bir web servisi olarak paketleyebilirsiniz. Veya kodunuz normal Java sınıflarında bulunuyorsa, sınıfınıza bir web hizmeti olarak erişim sağlayabilirsiniz. Ayrıca, JMS mesajlaşmasını web servisiniz için bir arka uç hizmeti olarak da kullanabilirsiniz.
Eşzamanlı bir web hizmeti oluşturma
Bu bölümde, düzenli bir Java sınıfı ve daha sonra stateless oturum EJB kullanan bir senkron web hizmeti oluşturursunuz. İlk olarak, arka uç bileşenini yazmanız gerekir. Bu, bir Java sınıfı, bir stateless EJB veya bir JMS yöntemi tüketici olacaktır.
Java sınıfı bir arka uç bileşeni ile çalışma
Bir Java sınıfı kullanan bir web hizmeti işlemi uygularken birkaç kural izlemelisiniz:
Herhangi bir iş parçacığı başlatmayın. Bu kural, WebLogic Server'da çalışan tüm Java kodları için geçerlidir.
- Varsayılan bağımsız değişkeni yapıcı tanımlayın.
- Web hizmeti işlemleri olarak açılacak Java sınıfının yöntemlerini genel olarak tanımlayın.
- Web-iş güvenliği Java kodunu yazmanız gerekir; çünkü WebLogic Server, yalnızca bir web hizmeti işlemini gerçekleştiren bir Java sınıfının tek bir örneğini tutar ve web hizmetinin her çağrısı aynı örneği kullanır.
Bir Java sınıfıyla bir WebLogic web hizmeti işleminin uygulanmasına ilişkin bir örnek için aşağıdaki dizine gidin:
WL_HOMEsamplesserversrcexampleswebservicesbasicjavaclass
Burada
WL_HOME , WebLogic Server kurulumunuzun ana dizinini belirtir. Windows sisteminde bu dizin genellikle C: beaweblogic81'dir. Liste 1, bir arka uç bileşeni olarak kullanabileceğiniz bir Java sınıfını gösterir. Bu Java sınıfı, bir int kabul eden ve bir String döndüren, sampleMethod adındaki tek bir yöntemi içerir.
Liste 1: Java Sınıfı Arka Bileşen Bileşen
paketi com. mankenleri. EJB;
public class SampleBackendComponent
{
public String örnek yöntem (int num)
{
anahtar (num)
{
case 1: "Bir" i döndür;
vaka 2: "İki" dönüş;
vaka 3: "Üç" dönüş;
dava 4: "Dört" i geri getirin;
dava 5: "Beş" i geri getirin;
dava 6: "Altı" ya geri dönün;
dava 7: dönüş "Yedi";
dava 8: dönüş "Sekiz";
dava 9: dönüş "Dokuz";
dava 10: "On" dönüş;
default: return "Some Number";
}
}
}
Stateless oturumu EJB arka uç bileşeni ile çalışma
Arka plan bileşeni stateless oturum EJB olarak da oluşturmayı seçebilirsiniz. Bir web hizmeti için stateless oturum EJB'si için Java kodu yazmak, bağımsız bir EJB yazmaktan farklı değildir.
Web servislerinde. xml dağıtım tanımlayıcısını kullanarak, bir web servisi işleminin tek yönlü olabileceğini belirtebilirsiniz; bu, web hizmetini çağıran istemci uygulamasının bir yanıt beklemediği anlamına gelir.Bu tür işlemleri gerçekleştiren EJB yöntemi için Java kodunu yazdığınızda, void döndürmesini belirtmeniz gerekir.
EJB veya Java sınıfı bir arka uç bileşeni seçmek arasında, arka uç bileşeni kullanmanın diğer yollarını düşünün. Arka uç bileşeni bir EJB olarak yaygın olarak erişilecekse, bir EJB olarak oluşturun. Bu, hem EJB hem de web servisiniz için aynı kodu kullanmanıza izin verir.
Bir web hizmetini çağırmak için EJB'yi çağırmaktan çok daha fazla kaynak gerekmektedir. Bu nedenle, tüm arka uç bileşenlerini EJB'ler olarak oluşturmak ve harici uygulamaların web hizmetleri gibi arka uç bileşenlerine erişmesine izin vermek genel bir yaklaşım. WebLogic sunucunuzla aynı ağda çalışan yerel uygulamalarınız daha hızlı EJB çağırma yöntemini kullanabilir.
Liste 2, EJB arka uç bileşenini uygulayan fasulye dosyasını göstermektedir. EJB arka uç bileşeni, Java sınıfı arka uç bileşeni ile hemen hemen aynıdır. Temel fark EJB'yi desteklemek için kullanılan ek koddur.
Liste 2: EJB Arka Bileşen
paketi com. mankenleri. EJB;
İçe aktarma javax. ejb. *;
import java. rmi. *;
İçe aktarma javax. salıncak. *;
public class SampleBean SessionBean'ı uygular
{
private SessionContext stx;
// Gerekli yöntemler, bu fasulye türü tarafından kullanılmaz
public void ejbCreate () {}
public void ejbRemove () {}
public void ejbActivate () {}
public void ejbPassivate () {}
// SessionContext için ayarlayıcı
public void setSessionContext (SessionContext ctx)
{
ctx = this. STX;
}
}
// örnek yöntemi
public String Örnek yöntem (int num)
atar RemoteException
{
anahtar (num)
{
case 1: return " Bir";
vaka 2: "İki" dönüş;
vaka 3: "Üç" dönüş;
dava 4: "Dört" i geri getirin;
dava 5: "Beş" i geri getirin;
dava 6: "Altı" ya geri dönün;
dava 7: dönüş "Yedi";
dava 8: dönüş "Sekiz";
dava 9: dönüş "Dokuz";
dava 10: "On" dönüş;
default: return "Some Number";
}
}
}
fasulyenin ejb-kavanozda stateless EJB olduğunu belirtmelisiniz. xml dosyasıdır. Liste 3'de gösterilmiştir. Birçok düğüm ve nitelik kullanabilirsiniz.
Listeleme 3: ejb-kavanoz. Bir Arka Bileşen İçin XML Dosyası
' // java. Güneş. com / dtd / ejb-jar_2_0. dtd '>
SampleObject
com. mankenleri. ejb. SampleHome
com. mankenleri. ejb. Örnek
com. mankenleri. ejb. SampleBean
Vatansız
Konteyner