sitimoen / xdocreport

Automatically exported from code.google.com/p/xdocreport
0 stars 0 forks source link

failed to initialize Velocity but freemaker ok #306

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?

use the sample code with maven import lib

<dependency>
          <groupId>fr.opensagres.xdocreport</groupId>
          <artifactId>fr.opensagres.xdocreport.document.docx</artifactId>
          <version>1.0.2</version>
        </dependency>
        <dependency>
          <groupId>fr.opensagres.xdocreport</groupId>
          <artifactId>fr.opensagres.xdocreport.template.velocity</artifactId>
          <version>1.0.2</version>
        </dependency>
        <dependency>
          <groupId>fr.opensagres.xdocreport</groupId>
          <artifactId>fr.opensagres.xdocreport.converter.docx.xwpf</artifactId>
          <version>1.0.2</version>
        </dependency>
        <dependency>
          <groupId>fr.opensagres.xdocreport</groupId>
          <artifactId>fr.opensagres.xdocreport.document.tools</artifactId>
          <version>1.0.2</version>
        </dependency>

  XDocReportException {
        Log.debug(GenerateDocxReport.class,"creation BDC start");
         // 1) Load Docx file by filling Velocity template engine and cache
        // it to the registry
        InputStream in = GenerateDocxReport.class
                        .getResourceAsStream("project2.docx");

        Log.debug(GenerateDocxReport.class,"creation BDC endinput stream is"+in.toString());

        IXDocReport report = XDocReportRegistry.getRegistry().loadReport(in,
                        TemplateEngineKind.Velocity);

        Log.debug(GenerateDocxReport.class,"creation BDC report is"+report);

        // 2) Create fields metadata to manage lazy loop (#forech velocity)
        // for table row.
        // 1) Create FieldsMetadata by setting Velocity as template engine
        FieldsMetadata fieldsMetadata = report.createFieldsMetadata();
        // 2) Load fields metadata from Java Class
        fieldsMetadata.load("project", Project.class);
        // Here load is called with true because model is a list of Developer.
        fieldsMetadata.load("developers", Developer.class, true);

        // 3) Create context Java model
        IContext context = report.createContext();
        Project project = new Project("XDocReport");
        context.put("project", project);
        // Register developers list
        List<Developer> developers = new ArrayList<Developer>();
        developers
                        .add(new Developer("ZERR", "Angelo", "angelo.zerr@gmail.com"));
        developers.add(new Developer("Leclercq", "Pascal",
                        "pascal.leclercq@gmail.com"));
        context.put("developers", developers);

        // 4) Generate report by merging Java model with the Docx
        OutputStream out = new FileOutputStream(new File("project_out.docx"));

        Log.debug(GenerateDocxReport.class,"cout is null ?"+out);
        Log.debug(GenerateDocxReport.class,"context is null ?"+context);

        report.process(context, out);

        Log.debug(GenerateDocxReport.class,"creation BDC end");

        }

1. code run well in a single java project
2. code dont' run in a full maven projet

What is the expected output? What do you see instead?

Exception in thread "main" fr.opensagres.xdocreport.core.XDocReportException: 
java.lang.NullPointerException
    at fr.opensagres.xdocreport.template.velocity.internal.VelocityTemplateEngine.initializeVelocityEngine(VelocityTemplateEngine.java:135)
    at fr.opensagres.xdocreport.template.velocity.internal.VelocityTemplateEngine.getVelocityEngine(VelocityTemplateEngine.java:117)
    at fr.opensagres.xdocreport.template.velocity.internal.VelocityTemplateEngine.processWithCache(VelocityTemplateEngine.java:95)
    at fr.opensagres.xdocreport.template.AbstractTemplateEngine.process(AbstractTemplateEngine.java:111)
    at fr.opensagres.xdocreport.template.AbstractTemplateEngine.process(AbstractTemplateEngine.java:83)
    at fr.opensagres.xdocreport.document.AbstractXDocReport.processTemplateEngine(AbstractXDocReport.java:772)
    at fr.opensagres.xdocreport.document.AbstractXDocReport.process(AbstractXDocReport.java:518)
    at fr.opensagres.xdocreport.document.AbstractXDocReport.process(AbstractXDocReport.java:484)
    at com.schneider.seve.utils.WordGenerator.GenerateDocxReport.main(GenerateDocxReport.java:120)
Caused by: java.lang.NullPointerException
    at fr.opensagres.xdocreport.template.velocity.internal.XDocReportEscapeReference.setRuntimeServices(XDocReportEscapeReference.java:56)
    at org.apache.velocity.runtime.RuntimeInstance.initializeSpecificEventHandler(RuntimeInstance.java:712)
    at org.apache.velocity.runtime.RuntimeInstance.initializeEventHandlers(RuntimeInstance.java:626)
    at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:243)
    at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:534)
    at org.apache.velocity.app.VelocityEngine.init(VelocityEngine.java:144)
    at fr.opensagres.xdocreport.template.velocity.internal.VelocityTemplateEngine.initializeVelocityEngine(VelocityTemplateEngine.java:130)
    ... 8 more

What version of the product are you using? On what operating system?

java jre6 windows 7

Original issue reported on code.google.com by ycelle...@gmail.com on 18 Sep 2013 at 7:25

GoogleCodeExporter commented 8 years ago
Hi yohan,

It's a really strange problem?

We use maven for our samples too and I have never seen this problem?

I suggets you to try our sample docx+velocity :

https://code.google.com/p/xdocreport/source/browse/?repo=samples&name=xdocreport
-samples-1.0.2#git%2Fsamples%2Ffr.opensagres.xdocreport.samples.docxandvelocity

Tell us if you have problem with this maven project.

Thank's

Regards Angelo

Original comment by angelo.z...@gmail.com on 18 Sep 2013 at 7:47

GoogleCodeExporter commented 8 years ago
Hi angelo,

thanks for the fast  response

i think i a found the issue, my maven project contain 2 velocity.jar 
version in libs: velocity1.5 and velocity1.7

if i remove the 1.5 version it's works.

i will check the pom to understand where is the 1.5 version comming from

thanks  

Original comment by ycelle...@gmail.com on 18 Sep 2013 at 7:53

GoogleCodeExporter commented 8 years ago
Hi yohan,

I close this issue but it's interesting to know that XDocReport crashes if you 
have several Velocity JARs with different version in your classpath.

Regards Angelo

Original comment by angelo.z...@gmail.com on 27 Sep 2013 at 11:27

GoogleCodeExporter commented 8 years ago
yes no pb 

Original comment by ycelle...@gmail.com on 27 Sep 2013 at 11:48