You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Adrian Crum <ad...@hlmksw.com> on 2007/11/12 22:40:10 UTC

Help - Screen Widgets and FOP

I'm having trouble using the ScreenFop view handler.

I'm trying to get the Entity Reference Chart to output to PDF. I created a Freemarker template that 
generates the correct output. I set up a view handler:

<view-map name="entityrefReport" type="screenfop" 
page="component://webtools/widget/EntityScreens.xml#EntityRefReport" content-type="application/pdf" 
encoding="none"/>

When I access that view, the hourglass cursor appears indefinitely. Many debug.log files are 
generated - totalling over a GB. After waiting 15 or 20 minutes, I close the browser window, but the 
rendering process continues. I have to shut down OFBiz to get it to stop. The debug logs just 
contain informational messages - no errors. No errors in the console log either.

I know the template is generating correct FO output because I can switch to this view handler:

<view-map name="entityrefReport" type="screen" 
page="component://webtools/widget/EntityScreens.xml#EntityRefReport"/>

and the template's FO output appears in the screen. If I save the browser's page source to a file, I 
can convert it manually using the command-line FOP and it creates a perfect (1000+ page) PDF file. 
The entire process takes less than a minute.

So, the individual elements all work fine, but for some reason the screenfop view handler gets hung up.

Any ideas?

-Adrian



Re: Help - Screen Widgets and FOP

Posted by Jacopo Cappellato <ti...@sastau.it>.
This pretty much seems an issue with memory usage.
You could try to use an asynch service call to schedule/submit the 
service call to create the PDF in the runtime/output folder: I've 
implemented a generic service for this some time ago (but I don't 
remember the name right now). If you are interested and you can't find 
it... let me know and I will research and provide you more information.

Jacopo


Adrian Crum wrote:
> I'm having trouble using the ScreenFop view handler.
> 
> I'm trying to get the Entity Reference Chart to output to PDF. I created 
> a Freemarker template that generates the correct output. I set up a view 
> handler:
> 
> <view-map name="entityrefReport" type="screenfop" 
> page="component://webtools/widget/EntityScreens.xml#EntityRefReport" 
> content-type="application/pdf" encoding="none"/>
> 
> When I access that view, the hourglass cursor appears indefinitely. Many 
> debug.log files are generated - totalling over a GB. After waiting 15 or 
> 20 minutes, I close the browser window, but the rendering process 
> continues. I have to shut down OFBiz to get it to stop. The debug logs 
> just contain informational messages - no errors. No errors in the 
> console log either.
> 
> I know the template is generating correct FO output because I can switch 
> to this view handler:
> 
> <view-map name="entityrefReport" type="screen" 
> page="component://webtools/widget/EntityScreens.xml#EntityRefReport"/>
> 
> and the template's FO output appears in the screen. If I save the 
> browser's page source to a file, I can convert it manually using the 
> command-line FOP and it creates a perfect (1000+ page) PDF file. The 
> entire process takes less than a minute.
> 
> So, the individual elements all work fine, but for some reason the 
> screenfop view handler gets hung up.
> 
> Any ideas?
> 
> -Adrian
> 


Re: Help - Screen Widgets and FOP

Posted by Adrian Crum <ad...@hlmksw.com>.
Christian and Jacopo,

https://issues.apache.org/jira/browse/OFBIZ-1401

Have at it! ;-)

-Adrian

Christian Geisert wrote:
> Jacopo Cappellato schrieb:
> 
>>*Maybe* it is related to the version of the parsers used (that are
>>determined at runtime)... for example I've noticed that in the FOP
>>distribution there is a Apache Xalan-J (JAXP-compliant XSLT and XPath
>>implementation), but not in OFBiz, and so I guess we are using the
>>default JAXP implementation delivered by the JDK.
>>
>>But I could be totally wrong...
> 
> 
> Yes & no ;-)
> Xalan in the FOP distribution is only used when running with Java 1.3
>>>From Java 1.4 on the jdk version is used unless you put another version
> into the endorsed directory.
> 
> But this is all speculation ... as already said: show us the code,
> Adrian ;-)
> 

Re: Help - Screen Widgets and FOP

Posted by Christian Geisert <ch...@isu-gmbh.de>.
Jacopo Cappellato schrieb:
> *Maybe* it is related to the version of the parsers used (that are
> determined at runtime)... for example I've noticed that in the FOP
> distribution there is a Apache Xalan-J (JAXP-compliant XSLT and XPath
> implementation), but not in OFBiz, and so I guess we are using the
> default JAXP implementation delivered by the JDK.
> 
> But I could be totally wrong...

Yes & no ;-)
Xalan in the FOP distribution is only used when running with Java 1.3
>From Java 1.4 on the jdk version is used unless you put another version
into the endorsed directory.

But this is all speculation ... as already said: show us the code,
Adrian ;-)

-- 
Christian


Re: Help - Screen Widgets and FOP

Posted by Adrian Crum <ad...@hlmksw.com>.
Jacopo,

Thanks for the tip! I'll check into that. Btw, thank you for updating the fop jar. I had tried that 
on my local copy to see if it made a difference, but nothing changed speed-wise. It helped reduce 
warning messages though.

-Adrian

Jacopo Cappellato wrote:

> *Maybe* it is related to the version of the parsers used (that are 
> determined at runtime)... for example I've noticed that in the FOP 
> distribution there is a Apache Xalan-J (JAXP-compliant XSLT and XPath 
> implementation), but not in OFBiz, and so I guess we are using the 
> default JAXP implementation delivered by the JDK.
> 
> But I could be totally wrong...
> 
> Jacopo
> 
> 
> Adrian Crum wrote:
> 
>> Jacopo and Christian,
>>
>> Thank you very much for your tips! I have already explored the Apache 
>> FOP website and read the information about memory.
>>
>> Here is what I have done so far:
>>
>> I confirmed the code in the ScreenFop view handler is correct - it's 
>> nearly an exact copy of the recommended code from the FOP website. I 
>> increased memory - min 512MB, max 1024MB (2 GB RAM in PC). I re-wrote 
>> the view handler to render to a temporary file instead of a String. I 
>> used buffered streams wherever possible. After all of that, nothing 
>> has changed. My next step is to reverse engineer the command line FOP 
>> to see how it does things - maybe I can spot a difference between it 
>> and the embedded code.
>>
>> To restate the problem: the FO xml file is about 13MB in size and 
>> converts to a 3MB PDF file in a few seconds using command-line FOP. 
>> When the same xml file is converted in OFBiz it runs for over an hour 
>> until I finally shut it down - no PDF file is produced.
>>
>> -Adrian
>>
>>
>> Christian Geisert wrote:
>>
>>> Adrian Crum schrieb:
>>>
>>>> I'm having trouble using the ScreenFop view handler.
>>>>
>>>> I'm trying to get the Entity Reference Chart to output to PDF. I 
>>>> created
>>>> a Freemarker template that generates the correct output. I set up a 
>>>> view
>>>> handler:
>>>
>>>
>>>
>>> [..]
>>>
>>>
>>>> So, the individual elements all work fine, but for some reason the
>>>> screenfop view handler gets hung up.
>>>>
>>>> Any ideas?
>>>
>>>
>>>
>>> Sounds like a memory issue
>>> (See http://xmlgraphics.apache.org/fop/trunk/running.html#memory for
>>> some info on how to fix this)
>>>
>>> If you send me a patch (or commit it) I'll be happy to have a look at it
>>>
> 
> 


Re: Help - Screen Widgets and FOP

Posted by Jacopo Cappellato <ti...@sastau.it>.
*Maybe* it is related to the version of the parsers used (that are 
determined at runtime)... for example I've noticed that in the FOP 
distribution there is a Apache Xalan-J (JAXP-compliant XSLT and XPath 
implementation), but not in OFBiz, and so I guess we are using the 
default JAXP implementation delivered by the JDK.

But I could be totally wrong...

Jacopo


Adrian Crum wrote:
> Jacopo and Christian,
> 
> Thank you very much for your tips! I have already explored the Apache 
> FOP website and read the information about memory.
> 
> Here is what I have done so far:
> 
> I confirmed the code in the ScreenFop view handler is correct - it's 
> nearly an exact copy of the recommended code from the FOP website. I 
> increased memory - min 512MB, max 1024MB (2 GB RAM in PC). I re-wrote 
> the view handler to render to a temporary file instead of a String. I 
> used buffered streams wherever possible. After all of that, nothing has 
> changed. My next step is to reverse engineer the command line FOP to see 
> how it does things - maybe I can spot a difference between it and the 
> embedded code.
> 
> To restate the problem: the FO xml file is about 13MB in size and 
> converts to a 3MB PDF file in a few seconds using command-line FOP. When 
> the same xml file is converted in OFBiz it runs for over an hour until I 
> finally shut it down - no PDF file is produced.
> 
> -Adrian
> 
> 
> Christian Geisert wrote:
>> Adrian Crum schrieb:
>>
>>> I'm having trouble using the ScreenFop view handler.
>>>
>>> I'm trying to get the Entity Reference Chart to output to PDF. I created
>>> a Freemarker template that generates the correct output. I set up a view
>>> handler:
>>
>>
>> [..]
>>
>>
>>> So, the individual elements all work fine, but for some reason the
>>> screenfop view handler gets hung up.
>>>
>>> Any ideas?
>>
>>
>> Sounds like a memory issue
>> (See http://xmlgraphics.apache.org/fop/trunk/running.html#memory for
>> some info on how to fix this)
>>
>> If you send me a patch (or commit it) I'll be happy to have a look at it
>>


Re: Help - Screen Widgets and FOP

Posted by Adrian Crum <ad...@hlmksw.com>.
Jacopo and Christian,

Thank you very much for your tips! I have already explored the Apache FOP website and read the 
information about memory.

Here is what I have done so far:

I confirmed the code in the ScreenFop view handler is correct - it's nearly an exact copy of the 
recommended code from the FOP website. I increased memory - min 512MB, max 1024MB (2 GB RAM in PC). 
I re-wrote the view handler to render to a temporary file instead of a String. I used buffered 
streams wherever possible. After all of that, nothing has changed. My next step is to reverse 
engineer the command line FOP to see how it does things - maybe I can spot a difference between it 
and the embedded code.

To restate the problem: the FO xml file is about 13MB in size and converts to a 3MB PDF file in a 
few seconds using command-line FOP. When the same xml file is converted in OFBiz it runs for over an 
hour until I finally shut it down - no PDF file is produced.

-Adrian


Christian Geisert wrote:
> Adrian Crum schrieb:
> 
>>I'm having trouble using the ScreenFop view handler.
>>
>>I'm trying to get the Entity Reference Chart to output to PDF. I created
>>a Freemarker template that generates the correct output. I set up a view
>>handler:
> 
> 
> [..]
> 
> 
>>So, the individual elements all work fine, but for some reason the
>>screenfop view handler gets hung up.
>>
>>Any ideas?
> 
> 
> Sounds like a memory issue
> (See http://xmlgraphics.apache.org/fop/trunk/running.html#memory for
> some info on how to fix this)
> 
> If you send me a patch (or commit it) I'll be happy to have a look at it
> 


Re: Help - Screen Widgets and FOP

Posted by Christian Geisert <ch...@isu-gmbh.de>.
Adrian Crum schrieb:
> I'm having trouble using the ScreenFop view handler.
> 
> I'm trying to get the Entity Reference Chart to output to PDF. I created
> a Freemarker template that generates the correct output. I set up a view
> handler:

[..]

> So, the individual elements all work fine, but for some reason the
> screenfop view handler gets hung up.
> 
> Any ideas?

Sounds like a memory issue
(See http://xmlgraphics.apache.org/fop/trunk/running.html#memory for
some info on how to fix this)

If you send me a patch (or commit it) I'll be happy to have a look at it

-- 
Christian