ฉันกำลังพยายามใช้ PDFbox บนเซิร์ฟเวอร์ IBM Domino เพื่อรับ NoClassDefFoundError

ฉันสามารถรันเอเจนต์ IBM Notes ของฉันแบบโลคัลได้โดยไม่มีข้อผิดพลาด อย่างไรก็ตาม เมื่อฉันรันเอเจนต์บนเซิร์ฟเวอร์ ฉันได้รับข้อผิดพลาดต่อไปนี้

ข้อผิดพลาด LS2J: โยน java.lang.NoClassDefFoundError: org.apache.pdfbox.pdmodel.PDDocument ในขั้นตอน GETTEMPLATE บรรทัด 79

เอเจนต์ LotusScript ของฉันเรียกใช้คลาส java โดยใช้ LS2J คลาส Java ที่ใช้ไลบรารีต่อไปนี้:

import java.io.File;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
import org.apache.pdfbox.pdmodel.interactive.form.PDField;
import org.w3c.dom.Document;
import org.w3c.dom.*;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException; 

ฉันได้เพิ่มไฟล์ JAR ต่อไปนี้ลงในเซิร์ฟเวอร์ Domino และได้รีสตาร์ทแล้ว

pdfbox-1.8.jar,
commons-lang-2.1.jar,
commons-logging-1.2.jar

มีไฟล์ JAR อื่น ๆ ที่ฉันต้องการคัดลอกไปที่: \notes\jvm\lib\ext หรือมีอย่างอื่นผิดปกติหรือไม่


person PN03    schedule 22.05.2015    source แหล่งที่มา
comment
คุณอ่านเรื่องนี้แล้วหรือยัง? pdfbox.apache.org/1.8/dependencies.html   -  person Tilman Hausherr    schedule 22.05.2015


คำตอบ (1)


มี สองวิธีในการทำให้มันทำงานบนเซิร์ฟเวอร์:

  • ระบุตัวแปร JavaUserClasses (หรือ JavaUserClassesExt) ใน notes.ini ของเซิร์ฟเวอร์เช่น
    JavaUserClasses=C:\...\jvm\lib\ext
    และรีสตาร์ทเซิร์ฟเวอร์ หรือ
  • สร้างไลบรารีสคริปต์ประเภท Java นำเข้า jars เป็นไฟล์เก็บถาวร และ "ใช้" ไลบรารีสคริปต์ในโค้ด Lotus Script
    Use "pdfBox"

    ป้อนคำอธิบายรูปภาพที่นี่

person Knut Herrmann    schedule 25.05.2015
comment
ฉันเพิ่ม jars ต่อไปนี้ (ไฟล์เก็บถาวรที่นำเข้า จากนั้นแนบแหล่งที่มา) ลงในไลบรารีสคริปต์ java ของฉัน (ซึ่งรวมถึงคลาส java ที่ฉันใช้ประมวลผล PDF ด้วย) commons-logging-1.2.jar, fontbox-1.8.8 jar และ pdfbox-app-1.8.9.jar แต่ตอนนี้ฉันได้รับข้อผิดพลาดอื่น.. 'ข้อผิดพลาดของตัวแทน: java.lang.NoClassDefFoundError: org.apache.pdfbox.pdmodel.font.PDType1Font (ความล้มเหลวในการเริ่มต้น)' - person PN03; 28.05.2015
comment
คุณต้องรวม pdfbox-1.8.9.jar (อาจแทน pdfbox-app-1.8.9.jar) - person Knut Herrmann; 28.05.2015
comment
ฉันเพิ่มไฟล์ jar รวมถึง pdfbox-1.8.9 jar ไปยังโฟลเดอร์ web-inf/lib ใน .NSF จากนั้นคลิกขวาและเพิ่มลงในเส้นทางการ build ฉันได้รับข้อผิดพลาด ข้อผิดพลาด LS2J: Threw java.lang.NoClassDefFoundError: org.apache.pdfbox.pdmodel.PDDocument - person PN03; 28.05.2015
comment
คุณต้องเพิ่ม pdfbox-1.8.9.jar ในส่วน Archive ของ Java Scriptlibrary ดังที่แสดงในภาพด้านบน - person Knut Herrmann; 28.05.2015
comment
โฟลเดอร์ BTW web-inf/lib ถูกละเว้นโดยเอเจนต์ Java (หรือเอเจนต์ LotusScript ที่เรียกส่วน Java โดย LS2J) ถูกใช้โดยโค้ด XPages Java เท่านั้น - person Knut Herrmann; 28.05.2015