• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: JasperReports progress
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: JasperReports progress


  • Subject: Re: JasperReports progress
  • From: Kieran Kelleher <email@hidden>
  • Date: Wed, 04 Apr 2012 06:56:07 -0400

Seems to me like D2W integration of long response pages is your issue here and the d2wcontext is getting lost. CCAjaxLongResponsePage knows nothing about D2W for a start, neither the nextpage controllers being used there. The jasper task is a background Callable task that returns a File result. The Jasper example project is not a D2W project. So, at this stage I have to defer to the D2W experts on the list for advice on integrating a background task with a File (to be downloaded result) into a D2W scenario.


The iReport MUST match the JasperReports version in this project. You have been warned.
Look in Libraries directory of this project for the jar named something like jasperreports-X.X.X.jar.
That file has the current version number.

Currently Wonder version is at 3.7.4. It will probably stay that way for a while. Jasper has many other dependencies and those dependencies are used across other Wonder projects .... iText for example. So it is not just a case of drop the latest jasper and all its dependencies into Libraries.


On Apr 3, 2012, at 10:48 PM, Theodore Petrosky wrote:

> here's what we have.
>
> in a stock D2W app there is a method in pageWrapper:
>
> public String bodyClass() {
> 	String result = null;
> 	String pageConfig = (String)d2wContext().valueForKey("pageConfiguration");
> 	if (pageConfig != null && pageConfig.length() > 0) {
> 		result = pageConfig + "Body";
> 	}
> 	return result;
> }
>
> Obviously it is setting the css class for the context. When I return from making the jasper report pdf, the d2wcontect is null and there is the NPE.
>
> as a work around, I added to the method that checks the context:
>
> if (d2wContext() != null) {
>
> NSLog.out.appendln("*** pageWrapper  pageConfiguration  is not  null =  ***** ");
>
> 	pageConfig = (String)d2wContext().valueForKey("pageConfiguration");
> }
>
> I get a very ugly page. now I can figure out why the compiled jasper report is not using any of the fonts that I am specifying.
>
> Are there any gotchas with the different versions of iReport and the version of Jasper Reports in wonder?
>
> Ted
>
> --- On Tue, 4/3/12, Kieran Kelleher <email@hidden> wrote:
>
>> From: Kieran Kelleher <email@hidden>
>> Subject: Re: JasperReports progress
>> To: "Theodore Petrosky" <email@hidden>
>> Cc: email@hidden
>> Date: Tuesday, April 3, 2012, 6:34 PM
>> The NPE is at:
>>
>> at
>> com.as.application.ui.components.PageWrapper.bodyClass(PageWrapper.java:27)
>>
>> that is your component ..... so why don't you look there to
>> see what is causing the NPE?
>>
>> On Apr 3, 2012, at 4:00 PM, Theodore Petrosky wrote:
>>
>>> So I've made progress but am stumped. I created a
>> customcomponent and used a rule to make one of the
>> displayPropertyKeys a hyperlink.
>>>
>>> I am basically using the JasperReportExample. I created
>> a hyperlink as one of the property keys. this will fire off
>> the method that starts the jasper reports process:
>>>
>>> public WOActionResults printBrief() {
>>
>>>
>>>         Brief theBrief =
>> (Brief)object();
>>>
>>>
>> Callable<File> reportTask =
>> Reports.createBriefReportTask(theBrief);
>>>
>>>
>> CCAjaxLongResponsePage nextPage =
>> pageWithName(CCAjaxLongResponsePage.class);
>>>
>>>         // Push the task
>> into the long response page
>>>
>> nextPage.setTask(reportTask);
>>>
>>>         // Controller for
>> handling the Callable result in the long response page
>>>
>> FileTaskDownloadController nextPageController = new
>> FileTaskDownloadController();
>>>
>>>         // Hyperlink text
>> on the "Your file is downloaded page" to get back here
>>>
>> nextPageController.setReturnLinkText("Reports Menu");
>>>
>>>         // The filename
>> for the download
>>>
>> nextPageController.setDownloadFileNameForClient("BriefReport.pdf");
>>>
>>>
>> nextPage.setNextPageForResultController(nextPageController);
>>>
>>>
>> NSLog.out.appendln("*** nextPage =  ***** " +
>> nextPage);
>>>
>>>
>>>         return nextPage;
>>>     }
>>>
>>> Here is the Reports method:
>>>
>>>     public static Callable<File>
>> createBriefReportTask(Brief b) {
>>>
>>
>>>         String
>> reportDescription = "Printed Brief";
>>>
>>>
>> HashMap<String, Object> parameters = new
>> HashMap<String, Object>();
>>>
>> parameters.put("reportDescription", reportDescription);
>>>
>> parameters.put("userName", "User From session");
>>>
>>>         EOQualifier
>> qualifier = ERXQ.equals(Brief.JOB_NUMBER_KEY,
>> b.jobNumber());
>>>
>>>
>> ERXFetchSpecification<Brief> fs = new
>> ERXFetchSpecification<Brief>(Brief.ENTITY_NAME,
>> qualifier, null);
>>>
>>>
>> ERJRFetchSpecificationReportTask reportTask = new
>> ERJRFetchSpecificationReportTask(fs,
>> jasperCompiledReportFileName, parameters);
>>>
>>>         return
>> reportTask;
>>>
>>>     }
>>>
>>> indeed it goes out and starts to create the pdf. I see
>> the the pdf in
>> /var/folders/2d/23408oihsdvh08r23/T/Brief3234987239872398472.pdf
>>>
>>> However, just when DownloadIsComplete's
>> appendToResponse method is called I get errors:
>>>
>>>
>>> Apr 03 15:33:34 ASBriefsD2W[57285] WARN
>> NSLog  -
>> <com.webobjects.appserver._private.WOComponentRequestHandler>:
>> Exception occurred while handling request:
>>> java.lang.NullPointerException
>>> [2012-4-3 15:33:34 EDT] <WorkerThread0>
>> java.lang.NullPointerException
>>>     at
>> com.as.application.ui.components.PageWrapper.bodyClass(PageWrapper.java:27)
>>>     at
>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>     at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>     at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>     at
>> java.lang.reflect.Method.invoke(Method.java:597)
>>>     at
>> com.webobjects.foundation.NSKeyValueCoding$ValueAccessor$1.methodValue(NSKeyValueCoding.java:636)
>>>     at
>> com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject(NSKeyValueCoding.java:1134)
>>>     at
>> com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.valueForKey(NSKeyValueCoding.java:1324)
>>>     at
>> com.webobjects.appserver.WOComponent.valueForKey(WOComponent.java:1736)
>>>     at
>> com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValueCoding.java:447)
>>>     at
>> com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java:212)
>>>     at
>> com.webobjects.appserver.WOComponent.valueForKeyPath(WOComponent.java:1804)
>>>     at
>> com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent(WOKeyValueAssociation.java:50)
>>>     at
>> com.webobjects.appserver._private.WOHTMLDynamicElement.stringValueInContext(WOHTMLDynamicElement.java:537)
>>>     at
>> com.webobjects.appserver._private.WOHTMLDynamicElement.classInContext(WOHTMLDynamicElement.java:542)
>>>     at
>> com.webobjects.appserver._private.WOHTMLDynamicElement._appendClassAndIdToResponse(WOHTMLDynamicElement.java:518)
>>>
>>> I can provide more but I have to start somewhere.
>>>
>>> I don't know  what else to says other than
>> 'HELP'!!! i'm drowning.
>>>
>>> Ted
>>>
>>>
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be
>> ignored.
>>> Webobjects-dev mailing list      (email@hidden)
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> This email sent to email@hidden
>>
>>


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: JasperReports progress
      • From: Theodore Petrosky <email@hidden>
References: 
 >Re: JasperReports progress (From: Theodore Petrosky <email@hidden>)

  • Prev by Date: Re: Newbie question about on WOInject (so for Henrique)
  • Next by Date: My component widgets won't pass the object.
  • Previous by thread: Re: JasperReports progress
  • Next by thread: Re: JasperReports progress
  • Index(es):
    • Date
    • Thread