2009-05-26 5 views
15

, şu soruya rastlamak:EJB sınav ağırlıklı bileşen tabanlı tasarım ve J2EE odaklanmak için bazı geçmiş sınav kağıtlarını revizyonu Ev/Uzak ve LocalHome/Yerel arayüzleri

senaryo 3'ün bir ön inceleme : “Değişim İsteği”, iki EJB'nin uygun bir çözüm sunacağını ileri sürer: girişin kontrol edilmesi için EnterExchangeRequest adlı bir oturum fasulyesi ve talebin kalıcı özelliklerini temsil etmek için ExchangeRequest adlı bir varlık fasulyesi.

  • Yerel
  • Uzaktan
  • LocalHome

    • Ev ve EJB'ler hizmetleri yukarıda açıklanan erişim sağlamak nasıl: Aşağıdaki arayüzler rolünü tartışır.

      Home ve Remote arabirimlerinin resmin içine nasıl sığacağını açıklamaya çalışabilirim. Ayrıca, öğretim üyesinin Home'un LocalHome ve Remote tarafından Local (niçin?) Tarafından değiştirilebileceğini duyduğunu duydum, fakat neden aynı anda dört kişinin rolünü tartışmamı istiyorlar?


      Ben EJB konteyner (uygulama sunucusu) bir arayüz Home veya Remote olduğunu görüyoruz ve daha sonra karar vereceğini derken doğru olsun musunuz o fasulye herhangi bir makinede can 'canlı' Küme, arayüzlerin LocalHome ve Local olması durumunda, konteyner, fasulyelerin birden fazla makineye dağıtılamayacağını bilecek ve bu nedenle onları sadece bir makinede "canlı" tutabilecek mi?


      Bu kuruluş Java ormanında tamamen kayboldum. Ben bir BeanOverflow yaşıyorum. Lütfen benim varsayımlarımdan hangisinin yanlış olduğunu söyler misiniz, yanlış anlaşılmalara ve yanlış anlamaya dikkat edin.

      Bu EJB arayüzlerinde bana yardımcı olmaya istekli olan herkese teşekkür ederiz.

      P.S. Soruyu geçmiş sınav kağıdından cevaplamanızı istemediğimi unutmayın. Sadece bunu sorarken neyin peşinde olabileceğine dair bir fikrin varsa merak ediyorum.

  • +10

    şaşkın olduğu sürece kullanılabilir mi? kulübe katıl. – Cheeso

    +0

    Sizi erkeklerle hissediyorum, BeanOverflow'a sahip oluyorum :) –

    cevap

    6

    Uzaktan kumandanın oluşturulmasından (örneğin yapıcısı gibi) ve LocalHome ile Local'ın da aynı ilişkiden ev sorumludur.

    Her durumda kap, yazdığınız gerçek EJB sınıfını referans alan bir proxy verir.

    Tahmin etmem gerekirse, sorulan soru, oturum fasulyesi için uzaktan kullanım ve varlık fasulyesi için yerel kullanımdı. Her neyse, bu kavramlar hala mevcut olsa da, EJB3'te işler çok daha basitleştirilmiştir.

    DÜZENLEME: Yoruma cevaben, EJB3 ile, fasülyenin kendisi uzaktan kumandayı ve ev arayüzlerini doğrudan uygulayabilir (oturum çekirdekleri için). EJB'leri tek bir açıklama ile yapılır.Durum bilgisi olan fasulye, eyalet sorunlarıyla uğraşmak için birkaç ek açıklama ekledi. Varlık çekirdeklerinin bir Ev arabirimi yoktur ve yerel bir arabirime gereksinim duymazsanız, doğrudan java nesnesiyle etkileşime girebilirsiniz. Bir sorguya dayalı olarak doğru varlık çekirdeklerini alan bir EntityManager var ve EntityManager'a bir açıklama ekleyerek enjekte edilir.

    Bu şekilde bir paragrafta özetlenir. Web'de bu konular için harika eğiticiler var, fakat EJB'ler genelde problemle başa çıkmadığınız sürece takdir edilmesi zor bir problemi çözüyorlar. Bunu çözmenin tek yolu onlar değil, ancak bu tür bir programla uğraşmadıkça, sadece bu konu hakkında okuma yapmak sizin için gerçekten yardımcı olmayacaktır.

    +0

    Ayrıca, EJB3'te işler nasıl basitleştirildiğini gösteren bir taslak sunabilir misiniz? Bu bilmek güzel olurdu. –

    +0

    Re: DÜZENLEME, fasulye sınıfları ev arayüzünü uygulamamalıdır. Basitleştirmeler hakkındaki açıklamanız şöyle olurdu: EJB 3'te, JPA varlık fasulyelerini etkin bir şekilde değiştirir, ancak varlık çekirdeklerini kullanırsanız, hala bir ev arabirimi kullanmanız gerekir. Durum bilgisi olmayan oturum çekirdeklerinin bir ev arabirimine ihtiyacı yoktur ve bir tanımlı değilse, iş arabirimi doğrudan JNDI'den bakılabilir ve önbelleğe alınabilir. Durumsal oturum çekirdeklerinin de bir ev arabirimine ihtiyacı yoktur, ancak bir ev arabirimi kullanılmazsa, JNDI araması "fabrika" olarak kullanılmalıdır. –

    7

    Yishay tarafından belirtildiği gibi, Ana/Uzak ve YerelEv/Yerel birbirine bağlı ve Ana arabirim bir kurucu olarak işlev görür.

    Yerel çekirdekler, içinde yaşadıkları JVM'ye bağlıdır, bunlara dışarıdan erişemezsiniz. Uzak fasulye diğer JVM'lerden erişilebilir.

    Benzer bir yaklaşım kullanıyorum: Her zaman kulakları dağıtırım. Kulağa fasulye yapıp, yerel fasülye yapmam, diğer kulağın kullanması anlamına gelen Fasulye. Ancak, yerel fasulye, diğer JVM

    +2

    EJB speklerine göre, "Bir kuruluş fasulyesi görünümüne yerel istemci görünümü üzerinden erişim, yalnızca yerel istemci görünümü sağlayan kurumsal çekirdekle aynı uygulama içinde paketlenmiş yerel istemciler için desteklenmelidir. Bu belirtimin uyumlu uygulamaları isteğe bağlı olarak erişimi destekleyebilir Farklı bir uygulamada paketlenmiş yerel bir istemciden bir kuruluş fasulyesinin yerel istemci görünümüne. [...] Yerel istemci görünümüne uygulama içi erişime dayanan uygulamalar portatif değildir. " –

    İlgili konular