2015-07-15 2 views
-1

Мне нужна ваша помощь в решении проблемы не нахождения класса com/lowagie/text/Document в iText jar. Версия Primefaces - 5.0, а версия iText - 2.1.7. Ошибка возникает, когда я добавляю имя метода в actionListner для его вызова, чтобы сгенерировать PDF-файл из метода и сделать его загружаемым при нажатии кнопки commandButton.Поверхности, генерирующие java.lang.NoClassDefFoundError: com/lowagie/text/Документ для вызова метода для создания PDF-файла для загрузки файла

Я прав, удалив все JAR и добавляя их по одному, и проблема остается прежней. Все JAR уникальны, и я использую Jdeveloper.

Бин код:

public void createPdf1() { 
    com.lowagie.text.Document doc = new com.lowagie.text.Document(PageSize.A4, 50, 50, 50, 50); 
    ByteArrayOutputStream out = new ByteArrayOutputStream(); 
    ByteArrayInputStream in ; 
    try { 

     PdfWriter writer; 

     writer = PdfWriter.getInstance(doc, out); 

     doc.open(); 
     PdfPTable table = new PdfPTable(1); 
     PdfPCell cell = new PdfPCell(new Phrase("First PDF")); 
     cell.setBorder(Rectangle.NO_BORDER); 
     cell.setRunDirection(PdfWriter.RUN_DIRECTION_LTR); 
     table.addCell(cell); 
     doc.add(table); 
     in = new ByteArrayInputStream(out.toByteArray()); 
     file = new DefaultStreamedContent(in, "application/pdf", "xxx.pdf"); 
     System.out.println("INSIDE"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

И JSF код, который я следовал за витрину:

<p:commandButton value="Download" ajax="false" onclick="PrimeFaces.monitorDownload(start, stop);" icon="ui-icon-arrowthick-1-s" actionListner="#{pdf.createPdf1}"> 
    <p:fileDownload value="#{pdf.file}" /> 
</p:commandButton> 

На щелчку CommandButton, я получаю ошибка:

javax.faces.el.EvaluationException: java.lang.NoClassDefFoundError: com/lowagie/text/Document at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) at javax.faces.component.UICommand.broadcast(UICommand.java:315) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:787) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1252) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:973) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:354) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:202) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:508) Caused By: java.lang.ClassNotFoundException: com.lowagie.text.Document at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297) at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270) at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64) at java.lang.ClassLoader.loadClass(ClassLoader.java:305) at java.lang.ClassLoader.loadClass(ClassLoader.java:246) at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179) at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:43)

+0

Итак, когда вы позволяете JDeveloper создавать/экспортировать WAR-файл на основе вашего проекта, содержит ли папка '/ WEB-INF/lib' файл iText JAR нужной версии? Исключение говорит, что это не так. – BalusC

+0

@BalusC Спасибо за подсказку ... В развернутом WAR-файле iText экспортируется, однако в моем локальном его нет. Я решил это, поставив JAR в lin – 99maas

ответ

0

Файл iText WAR хранится в папке/lib, и он отлично работает. Совместимая версия iText 2.1.7, пожалуйста, обратитесь к Зависимости в руководстве.