2014-06-10 27 views
8
için uygulama veya modül adı nasıl ayarlanır

OSJ demetleri için EJB kullanıyorum. Ben EJB almak gerektiğinde Ve şimdi örneğin, uzun JNDI vardır:Glassfish 4: JNDI

bean = (InterfaceName) ctx.lookup("java:global/longBundleName_version/OrganizationDirBean!and.plus.path.and.InterfaceName"); 

Bu rolü değiştirmek istiyorum:

longBundleName_version 

Ben bu kısmı ayarlanabilir olmalıdır paket dağıtırken Yani, [glassfish-] application.xml veya [glassfish -] - ejb-jar.xml veya herhangi bir diğer xml tanımlayıcısından. Ben bu dosyalarda ayarlamalısınız şeyi bulamıyorum

java:global/newBundleNameWithoutVersion/etc 

sorun: Ben gibi olmak benim EJB için jndi isim istiyorum. İnternette bulunan tüm variants artık desteklenmiyor ve kendim denedim. Bana yardım eder misin?

Lütfen, mappedName öğesini uzak fasulye için kullanılabilecek şekilde (!) Kullanmayın. Aynı anda hem yerel hem de uzak olan fasulye kullanıyor.

birisi glassfish gelişiminde rol oynayan ise, en azından ne anlamı desteler başıma soruyu bulmak için incelemek gerekir ki? Çok minnettar olacağım.

+1

Glassfish açık kaynak, değil mi? Neden mümkün olup olmadığını öğrenmek için ilgili kodu neden okumazsınız? – bmargulies

+0

@bmargulies Fikriniz için teşekkür ederiz! Denemeye çalışacağım, düşünmek çok kolay olmasa da çok fazla kod içeriyor ve ben onun koduyla hiç çalışmadım. Ve yeterince tecrübem yok korkuyorum, doğruyu söylemek gerekirse. –

cevap

3

Sen EJB böyle açıklama olmalıdır: Bundan sonra

@Remote(value = YourInterface.class) 
@Stateless(mappedName = "java:global/fancy") 

, GF günlükleri diyor ki:

<!-- language:java --> 

@EJB(lookup="java:global/fancy") 
:

EJB5182:Glassfish-specific (Non-portable) JNDI names for EJB YourInterfaceImpl: [java:global/fancy, java:global/fancy!com.example.YourInterface]]] 

Ve en azından ben böyle güçlü enjekte

Bu yüzden manuel olarak bakmanın da işe yarayacağını düşünüyorum.

+0

Zaman ayırdığınız için teşekkür ederiz. Sorun şu ki, sunduğunuz şey taşınabilir JNDI ismi değil. Ve ikinci problem, mappedName'in sadece uzak fasülyeler için kullanılması, fakat hem lokal hem de uzakım var. –

+0

O zaman muhtemelen mümkün değil. Mümkünse, başvurunuzu iki kez dağıtacaksanız, kaynaklardan hangisi özel JNDI'nize eşlenecek? –

+0

Bu mümkün. Sağladığım bağlantıya bakın. –