Pardus 19 Gnome ortamı kurulu olan bilgisayarda oracle-java-8 ve icedtea-netx kurdum. Sonrasında UYAP girişi için kullanılan UYAPGiris.jnlp dosyasını indirip çalıştırdım. Akıllı kartı okuma ile ilgili bir sorun olmadığı ve resimde gözüktüğü üzere doğrulama aşamasını sorunsuz tamamladığı halde javaws web tarayıcıyı başlatmıyor.
Son olarak terminal üzerinden javaws ile UYAPGiris.jnlp dosyasını çalıştırdığımda şu şekilde bir hata verip program burada takılı kalıyor.
Bu hata ile ilgili midir bilemiyorum fakat olması gereken şu şekilde; doğrulama aşamasından sonra web tarayıcı üzerinde uyap sitesine yönlendirilip kullanıcı girişi yapılmış yeni bir sayfanın açılması gerekiyor.
2020-02-13 00:01:51 FINE tr.gov.tubitak.uekae.esya.api.cmssignature.CMSSignatureUtil addDigestAlgIfNotExist Signer's digest algorithm is added to SignedData:tr.gov.tubitak.uekae.esya.api.asn.x509.EAlgorithmIdentifier@51
2020-02-13 00:01:51 INFO tr.gov.tubitak.uekae.esya.api.cmssignature.signature.BaseSignedData addSigner Add signer : 1727 ms.
2020-02-13 00:01:51 SEVERE tr.gov.uyap.system.login.esign.ui.MainFrame$5 propertyChange jsessionId: JSESSIONID=0000iVPwWOA-uDBeSr0R7bc_CDn:18irdbbd7
Exception in thread "AWT-EventQueue-1" java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
at tr.gov.uyap.system.login.esign.ui.MainFrame$5.propertyChange(MainFrame.java:432)
at java.desktop/java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:341)
at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:333)
at java.desktop/javax.swing.SwingWorker$SwingWorkerPropertyChangeSupport.firePropertyChange(SwingWorker.java:870)
at java.desktop/javax.swing.SwingWorker$SwingWorkerPropertyChangeSupport$1.run(SwingWorker.java:876)
at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:847)
at java.desktop/sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:857)
at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:317)
at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:249)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClass(JNLPClassLoader.java:1640)
... 23 more
Yardımcı olabilirseniz sevinirim düzeltmek için pek çok şey denedim fakat başarılı olamadım.
Openjdk ile de denedim fakat openjdk üzerinden javaws çalıştırınca jnlp üzerinden açılan uygulama akıllı kartı görmüyor, (akia sorunsuz bir şekilde kartı okuyabilmesine rağmen openjdk karta erişemiyor) bundan dolayı tarayıcıya yönlendirme yapılan aşamaya gelinemiyor.
Sağ tıklayarak açılan pencereden birlikte aç/ diğer uygulama ile aç/ özel bir komut kullan / görüntüle /lib/jvm/oracle-java8-jre-amd64 java/bin/javaws adımları uygulanır javaws seçildikten sonra aç denir.
Yanıtlarınız için teşekkürler, Jnlp dosyasını çalıştırmada bir sorun yaşamıyorum, oracle-jre kullandığım zaman akıllı kartı görmüyor icedtea kullandığımda ise web tarayıcıya yönlendirme yapmıyor.
Özetle iki farkli java için iki farklı problem var ve forumlarda yazan bir çok öneriyi denememe rağmen çözemedim. Daha doğrusu bu şekilde bir hatanın olduğu paylaşım bulamadım.
Malesef söylediğiniz sürüm üzerinden sıfır kurulum yaptıktan sonra yüklü gelen java ile de denedim aynı hata burada da geçerli. Akia komutu ile akıllı kartı sorunsuz gördüğü halde oracle-java8 ve java-8-openjdk ile denediğimde akıllı kartı görmedi.
Sorunun bilgisayardan kaynaklı olduğunu düşüneceğim fakat iki farklı model bilgisayarda da aynı hata olduğundan bu seçenek de zayıf kalıyor.
Benzeri bir sorunla karşılaşan veya bu soruna çözüm getirebilecek olanlar varsa lütfen buradan yazınız.
Yardımınız için teşekkürler, yazıda belirtildiği şekilde kurulum yaptığımda bu kez icedtea ile çalıştırdığım javaws dahi akıllı kartı görmedi. Bir başka deyişle JVM Settings kısmında path olarak belirtilen javayı tanımlayınca jnlp dosyası "akia"yı çalıştıramıyor. İlgili path’i silince icedtea ile kartı okuyor.
Anladığım kadarıyla
icedtea-netx openjdk-11’e bağımlı,
oracle-java-8 veya diğer java sürümleri akia’yı desteklemiyor (akia sadece icedtea üzerinde çalışıyor)
icedtea ile jnlp’yi çalıştırınca ilngiç bir şekilde web starter çalışmıyor (temel sorun bu)
openjdk veya oracle-java üzerinden akia’nın neden çalışmadığı veya nasıl çalıştırılabileceğini bulabilirsek de çalışacak gibi.
Farklı denemeler yapmaya devam edeceğim, yardımlarınız için teşekkürler, çözüm bulabilirsem belirteceğim.
uyap-giris.jnlp’nin olduğu klasörde bu komutu çalıştırın: JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/" javaws uyap-giris.jnlp. İsterseniz bunun için bir masaüstü kısayolu vs de oluşturabilirsiniz.
Alternatif olarak temelli bir çözüm için /usr/share/icedtea-web/bin/javaws.sh'ın içindeki JRE= ile başlayan satırı diyezleyip altına JRE=/usr/lib/jvm/java-8-openjdk-amd64 ekleyebilirsiniz. JNLP yazılımların hepsi artık java 8 ile açılacak. JNLP Java 8 sonrası deprecate edildiğinden sorun çıkmamalı.
Burada göreceğiniz üzere Base64 encode için kullanılan fonksiyon DatatypeConverter.printBase64Binary. Zaten hata da bunu diyor (Exception in thread "AWT-EventQueue-1" java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter).
Bunu sağlayan kütüphale Java 9’dan itibaren deprecated, 11’den itibaren silinmiş durumda. Yerine Base64.encodeBase64String kullanmaları lazım, bu hem Java 8’de var, hem de 8’den sonrasında.