type Exception report
message
descriptionThe server encountered an internal error () that prevented it from fulfilling this request.
exception javax.servlet.ServletException: java.lang.reflect.InvocationTargetException while attempting to process a 'beforeCreate' event for 'sun_page1'.
root cause java.lang.RuntimeException: java.lang.reflect.InvocationTargetException while attempting to process a 'beforeCreate' event for 'sun_page1'.
root cause java.lang.reflect.InvocationTargetException
root cause java.lang.reflect.UndeclaredThrowableException
root cause javax.management.AttributeNotFoundException: AdminSessionTimeoutInMinutes
note The full stack traces of the exception and its root causes are available in the Sun Java System Application Server 9.1_01 logs.
ÇÖZÜM:
Mesele (hemen her java kaynaklı problemde olduğu gibi) Türkçe windows kullanıyor olmamamızdan kaynaklanıyordur. Çözüm için (evet 2 saatten fazla zamanımı aldı bunu bulmak):
{glassfish'in kurulu olduğu yer}\domains\domain1\config\domain.xml
dosyasını açıp editliyoruz. JVM ayarlarının yapıldığı bir kısım var (
satırını ilave ediyoruz. Glassfish'i yeniden başlatıyoruz. Admin console artık hatasız çalışıyor...
Bu arada problemin çözümünü ararken rastladığım ifadeyi de buraya almak istiyorum:
JAVA:"write once run everywhere except Turkey"
3 yorum:
Eyvallah.Çok hatıra geçti.
Aslında sorunu çözen -Duser.language=tr-TR yazmak değilmiş. Onun yerine -Duser.language=qwerty, -Duser.language=loremipsum ya da manası olmayan herhangi birşey yazmak sorunu çözüyor. Yeter ki sadece tr yazmayın.
Aslında olayın arka planı şöyle. Locale ayarı Türkçe olan bir bilgisayarda, default language ayarı tr. Artık java dünyasında standart olan İ, ı karakteri sorunu nedeniyle, Türkçe dil seçeneğinde glassfish administrator çalışmıyor.
tr-TR parametresinin sorunu çözmesi ise şöyle. Normalde language parametresi iki karakterli bir değer alır. tr-TR diye bir language parametresi olmaz. (tr-TR yada tr_TR aslında locale'i gösterir. Dil ve ülkenin bir birleşimi olarak.) Fakat jvm böyle tanımadığı bir language parametresi ile karşılaşınca standart olarak ingilizce dile switch ediyor ve sorun çözülmüş oluyor. Orada tr-TR yerine alakasız birşey yazılsa bile sorunun ortadan kalkmasının nedeni bu. Tabi aslında gerçek bir çözüm değil, sorunun etrafında dolaşmış oluyoruz. Bu bir bug ve https://glassfish.dev.java.net/issues/show_bug.cgi?id=3851 adresinde söylediğine göre 9.1.1 versiyonunda düzeltilmesi bekleniyor.
bu sorun aslında bir bug.dil configurasyonu sadece sayfaya erişmek ve mevcut connection poollara erişmek için geçici bir çözüm ancak bu çözüm bazı exceptionlarada neden oluyor örneğin seam + glassfish de eğer dil ayarını bu şekilde yaparsak evet glassfishin admin sayfasına erişebiliyoruz ama web uygulamamızda login olamıyoruz ve şu hata ile karşılaşıyoruz:
"Exception : Connection could not be allocated because: Locale not recognized"
bu hatadan kurtulmanın yolu ise eklediğimiz -Duser.language tagını tekrar kaldırmak... Yani malesef aşağı tükürsek sakal yukarı tükürsek bıyık :D
Yorum Gönder