Fat JAR'den IronPdfEngine Bağlantı Hatası
IronPDF for Java uygulamanız fat (uber) JAR olarak paketlendiğinde, istemci içsel render motoruna bağlanamaz. IronPdfEngine doğru portta başlatılır ve dinler, ancak Java istemcisi 20 bağlantı girişiminde bulunur ve her seferinde başarısız olur.
Failed to connect to IronPdfEngine after 20 attempts
Başarısızlık, her bir bağımlılığı kendi kendine monte edilmiş tek bir gölgeli (uber) JAR'de birleştirmekten kaynaklanır — örneğin, Maven Shade veya Gradle Shadow eklentisi ile. Birleştirilen bağımlılıklardan gelen çakışan kaynak dosyaları, Java istemcisinin IronPdfEngine alt sürecine ulaşmasını engeller: motor başlatılır ve beklenen portu açar, ancak istemci asla bağlanamaz ve 20 denemeden sonra vazgeçer. Her bağımlılığı sınıf yolunda kendi dosyası olarak tutmak çatışmayı önler.
Çözüm
Projeyi normal bir şekilde inşa edin, bağımlılıklarını bir klasöre kopyalayın, ardından uygulamayı java -jar kullanmak yerine doğrudan bu dosyaları göstererek başlatın.
1. Projeyi İnşa Edin
mvn clean package
mvn clean package
2. Çalışma Zamanı Bağımlılıklarını Kopyalayın
Her bir kütüphaneyi, sınıf yolunu gerektiren ayrı JAR'lar olarak target/libs içerisine yerleştirin:
mvn dependency:copy-dependencies -DoutputDirectory=target/libs
mvn dependency:copy-dependencies -DoutputDirectory=target/libs
3. Sınıf Yolundan Çalıştırın
Uygulamayı fat JAR yerine patlatılmış sınıf yoluna karşı başlatın. com.example.Main'yi gerçekteki ana sınıfınızla değiştirin.
Windows:
java --add-opens java.base/java.nio=ALL-UNNAMED -cp "target/classes;target/libs/*" com.example.Main
java --add-opens java.base/java.nio=ALL-UNNAMED -cp "target/classes;target/libs/*" com.example.Main
Linux / macOS:
java --add-opens java.base/java.nio=ALL-UNNAMED -cp "target/classes:target/libs/*" com.example.Main
java --add-opens java.base/java.nio=ALL-UNNAMED -cp "target/classes:target/libs/*" com.example.Main
İki komut arasındaki tek fark, sınıf yolu ayırıcıdır: Windows'ta noktalı virgül (;), Linux ve macOS'ta ise iki nokta üst üste (:).
Hata Ayıklama İpuçları
- Çalışmayan: fat JAR'den çalıştırıldığında
IronPdfEnginebaşarılı bir şekilde başlatılır, ancak Java istemcisi asla bağlanmaz. --add-openstek başına yeterli değildir: hala fat JAR'den çalıştırılırken JVM bayrağı eklemek bağlantı hatasını düzeltmez. Bayrak, yukarıdaki sınıf yolu başlatmasıyla birlikte kullanıldığında önemlidir.- PDF/A sürüm dizileri: kodunuz bir PDF/A sürümünü string argüman olarak geçiyorsa,
PdfA2akullanın,PdfAVersions.PdfA2adeğil.


