"The import com.lowagie cannot be resolved "(混合动力系统)

"The import com.lowagie cannot be resolved " (HYBRIS)

package de.hybris.training.core.job;

        import com.lowagie.text.Document;

        import com.lowagie.text.Phrase;

        import com.lowagie.text.pdf.PdfPTable;
        import com.lowagie.text.pdf.PdfWriter;
        import de.hybris.platform.cronjob.enums.CronJobResult;
        import de.hybris.platform.cronjob.enums.CronJobStatus;
        import de.hybris.platform.servicelayer.cronjob.AbstractJobPerformable;
        import de.hybris.platform.servicelayer.cronjob.PerformResult;

        import de.hybris.training.core.facade.impl.TotalCustomerFacadeImpl;
        import de.hybris.training.core.model.UsersFindCronJobModel;

        import java.util.List;


        import java.awt.*;
        import java.io.File;

        import java.io.FileOutputStream;



public class UsersFindJob extends AbstractJobPerformable<UsersFindCronJobModel> {

        private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(UsersFindJob.class);
        TotalCustomerFacadeImpl totalCustomerFacade = new TotalCustomerFacadeImpl() ;




        @Override
        public PerformResult perform(UsersFindCronJobModel cronJobModel) {

                try {

                        // Retrieve firstName from the cronJob
                        String firstName = cronJobModel.getFirstName();

                        // Display Hello firstName
                        LOG.info("**********************************");
                        LOG.info("**********************************");
                        LOG.info("***********************************");LOG.info("**********************************");
                        LOG.info("***********************************");LOG.info("**********************************");
                        LOG.info("***********************************");LOG.info("**********************************");
                        LOG.info("***********************************");LOG.info("**********************************");
                        LOG.info("***********************************");LOG.info("**********************************");
                        LOG.info("***********************************");
                        LOG.info("Hello " + firstName);
                        LOG.info("**********************************");
                        LOG.info("**********************************");
                        LOG.info("**********************************");
                        LOG.info("***********************************");LOG.info("**********************************");
                        LOG.info("***********************************");LOG.info("**********************************");
                        LOG.info("***********************************");LOG.info("**********************************");
                        LOG.info("***********************************");

                        createSamplePDF( totalCustomerFacade.findCustomerContainingName(firstName));

                        // In case of success return result: SUCCESS and status: FINISHED
                        return new PerformResult(CronJobResult.SUCCESS, CronJobStatus.FINISHED);

                } catch(Exception e) {

                        // In case of exception return result: ERROR and status: ABORTED
                        return new PerformResult(CronJobResult.ERROR, CronJobStatus.ABORTED);

                }
        }

        public static void createSamplePDF(List<String> firstNames) throws Exception{





                Document documento = new Document();
                //Create new File
                File file = new File("C:/newFileName.pdf");
                file.createNewFile();
                FileOutputStream fop = new FileOutputStream(file);
                PdfWriter.getInstance(documento, fop);
                documento.open();
                //Fonts
                Font fontHead = new Font(Font.DIALOG, 15, Font.BOLD);
                Font fontBody = new Font(Font.DIALOG, 12, Font.BOLD);


                //Tabla for body
                PdfPTable tabla = new PdfPTable(firstNames.size());
                for (int i = 0; i < firstNames.size(); i++) {

                                tabla.addCell(new Phrase(firstNames.get(i)));
                }

                documento.add(tabla);
                documento.close();
                fop.flush();
                fop.close();

        }
        }

这是我的class。 Intellij 没有显示任何错误,但是当我让 ant clean all 时,那些来了:

[yjavac] 1. ERROR in C:\HYBRISCOMM6600P\hybris\bin\custom\training\trainingcore\src\de\hybris\training\core\job\UsersFindJob.java (at line 3)
[yjavac] import com.lowagie.text.Document;
[yjavac] ^^^^^^^^^^^
[yjavac] The import com.lowagie cannot be resolved
[yjavac] ----------
[yjavac] 2. ERROR in C:\HYBRISCOMM6600P\hybris\bin\custom\training\trainingcore\src\de\hybris\training\core\job\UsersFindJob.java (at line 5)
[yjavac] import com.lowagie.text.Phrase;
[yjavac] ^^^^^^^^^^^
[yjavac] The import com.lowagie cannot be resolved
[yjavac] ----------
[yjavac] 3. ERROR in C:\HYBRISCOMM6600P\hybris\bin\custom\training\trainingcore\src\de\hybris\training\core\job\UsersFindJob.java (at line 7)
[yjavac] import com.lowagie.text.pdf.PdfPTable;
[yjavac] ^^^^^^^^^^^
[yjavac] The import com.lowagie cannot be resolved
[yjavac] ----------
[yjavac] 4. ERROR in C:\HYBRISCOMM6600P\hybris\bin\custom\training\trainingcore\src\de\hybris\training\core\job\UsersFindJob.java (at line 8)
[yjavac] import com.lowagie.text.pdf.PdfWriter;
[yjavac] ^^^^^^^^^^^
[yjavac] The import com.lowagie cannot be resolved
[yjavac] ----------
[yjavac] 5. ERROR in C:\HYBRISCOMM6600P\hybris\bin\custom\training\trainingcore\src\de\hybris\training\core\job\UsersFindJob.java (at line 75)
[yjavac] Document documento = new Document();
[yjavac] ^^^^^^^^
[yjavac] Document cannot be resolved to a type
[yjavac] ----------
[yjavac] 6. ERROR in C:\HYBRISCOMM6600P\hybris\bin\custom\training\trainingcore\src\de\hybris\training\core\job\UsersFindJob.java (at line 75)
[yjavac] Document documento = new Document();
[yjavac] ^^^^^^^^
[yjavac] Document cannot be resolved to a type
[yjavac] ----------
[yjavac] 7. ERROR in C:\HYBRISCOMM6600P\hybris\bin\custom\training\trainingcore\src\de\hybris\training\core\job\UsersFindJob.java (at line 80)
[yjavac] PdfWriter.getInstance(documento, fop);
[yjavac] ^^^^^^^^^
[yjavac] PdfWriter cannot be resolved
[yjavac] ----------
[yjavac] 8. ERROR in C:\HYBRISCOMM6600P\hybris\bin\custom\training\trainingcore\src\de\hybris\training\core\job\UsersFindJob.java (at line 88)
[yjavac] PdfPTable tabla = new PdfPTable(firstNames.size());
[yjavac] ^^^^^^^^^
[yjavac] PdfPTable cannot be resolved to a type
[yjavac] ----------
[yjavac] 9. ERROR in C:\HYBRISCOMM6600P\hybris\bin\custom\training\trainingcore\src\de\hybris\training\core\job\UsersFindJob.java (at line 88)
[yjavac] PdfPTable tabla = new PdfPTable(firstNames.size());
[yjavac] ^^^^^^^^^
[yjavac] PdfPTable cannot be resolved to a type
[yjavac] ----------
[yjavac] 10. ERROR in C:\HYBRISCOMM6600P\hybris\bin\custom\training\trainingcore\src\de\hybris\training\core\job\UsersFindJob.java (at line 91)
[yjavac] tabla.addCell(new Phrase(firstNames.get(i)));
[yjavac] ^^^^^^
[yjavac] Phrase cannot be resolved to a type
[yjavac] ----------
[yjavac] 10 problems (10 errors)

我也将 itextpdf-5.1.0.jar 导入到 <classpathentry kind="lib" path="lib/itextpdf-5.1.0.jar"/> 但仍然相同(复制 jar 后,除了放入 .classpath 之外没有做任何其他事情)

为什么会出现错误?

None 的解决方案在网上有效。 none 其中用于 hybris。

我能做什么?我找不到 java class 的方法。我需要将给定字符串数组列表导出为 pdf。

默认情况下,hybris 包括在您的扩展库文件夹中找到的所有库。在您的 IDE 中,您需要自己引用库。也许您混淆了 lib 文件夹?检查您是否将库放入

\hybris\bin\custom\training\trainingcore\lib

您所遵循的步骤非常适合导入 external lib

我认为您需要针对您的版本关注 itextpdf doc。最新版本 (itextpdf-5.1.0.jar) com.lowagie 不存在。您应该使用 com.itextpdf 而不是 com.lowagie

This answer 将帮助您解决问题。

可以参考this blog.