• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

ice.storm.print.PageDecoration not found by document [78]

New Here ,
Nov 30, 2022 Nov 30, 2022

Copy link to clipboard

Copied

Hello,

 

I have a simple coldfusion file that wraps html in a cfdocument tag and then saves it to a PDF file.  This has worked for years on previous versions as well as in ColdFusion 2021 since we upgraded earlier this year.  After a recent ColdFusion 2021 update the cfdocument is now throwing the error "ice.storm.print.PageDecoration not found by document" when it tries to generate the PDF file. Am I missing ome sort of Java library that handles the PDF or does anyone else have any ideas as to what has happened to cause the error?

 

 

Message

ice.storm.print.PageDecoration not found by document [78]
StackTracejava.lang.ClassNotFoundException: ice.storm.print.PageDecoration not found by document [78] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1597) at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at coldfusion.tagext.document.DocumentTag.doStartTag(DocumentTag.java:1321) at cfprintcandidateV22ecfm1315926517.runPage(F:\websites\GildanBangledash\hradmin\printcandidateV2.cfm:35) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:257) at coldfusion.tagext.lang.IncludeTag.handlePageInvoke(IncludeTag.java:749) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:578) at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:5201) at cfApplication2ecfc940188772$funcONREQUEST.runFunction(F:\websites\GildanBangledash\hradmin\Application.cfc:85) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:623) at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:553) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:516) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:463) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:438) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:310) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:975) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:696) at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:503) at coldfusion.runtime.AppEventInvoker.invoke(AppEventInvoker.java:115) at coldfusion.runtime.AppEventInvoker.onRequest(AppEventInvoker.java:308) at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:569) at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:43) at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) at coldfusion.filter.PathFilter.invoke(PathFilter.java:162) at coldfusion.filter.IpFilter.invoke(IpFilter.java:45) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:97) at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:60) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62) at coldfusion.CfmServlet.service(CfmServlet.java:231) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:311) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:46) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:47) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:377) at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:463) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:834)

Views

408

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 03, 2022 Dec 03, 2022

Copy link to clipboard

Copied

The following excerpt from the stacktrace reveals the probable cause of the error:

at cfprintcandidateV22ecfm1315926517.runPage(F:\websites\GildanBangledash\hradmin\printcandidateV2.cfm:35) 
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:257) 
at coldfusion.tagext.lang.IncludeTag.handlePageInvoke(IncludeTag.java:749) 
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:578) 
at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:5201) 
at cfApplication2ecfc940188772$funcONREQUEST.runFunction(F:\websites\GildanBangledash\hradmin\Application.cfc:85) 
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:623) 
...
at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:553) 
at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:516) 
at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95) 
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:463) 
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:438) 
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:310) 
at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:975) 
at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:696) 
at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:503) 
at coldfusion.runtime.AppEventInvoker.invoke(AppEventInvoker.java:115) 
at coldfusion.runtime.AppEventInvoker.onRequest(AppEventInvoker.java:308) 
at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:569) 
...

 

You should be using onRequestStart in Application.cfc, not onRequest.

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 03, 2022 Dec 03, 2022

Copy link to clipboard

Copied

Bkbk, I'm curious why you would assert that's incorrect for Jeff to have used? I don't see a connection at all. Can you elaborate?

 

Note also that Jeff said this code worked prior to the latest update. I don't see a connection between that choice and the recent update. I do have different suggestions for Jeff that I'll offer in another reply. 


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 03, 2022 Dec 03, 2022

Copy link to clipboard

Copied

quote

Bkbk, I'm curious why you would assert that's incorrect for Jeff to have used? I don't see a connection at all. Can you elaborate?

 


By @Charlie Arehart

 

Charlie, I too had a strange ClassNotFoundException immediately after I applied ColdFusion 2021 Update 5. The exception went away after I commented out the onRequest event-handler.

 

That said, I share the view that such ClassNotFoundExceptions may imply a bug. I in fact have been testing similar cases. But I am so far unable to reproduce them.  

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 03, 2022 Dec 03, 2022

Copy link to clipboard

Copied

Strange. A quick check shows that the class is there all right:

 

<cfset pageDecorationInstance=createobject("java","ice.storm.print.PageDecoration")>
<cfdump var="#getMetadata(pageDecorationInstance).getPackageName()#" >

 

This confirms that the class is in the package coldfusion.runtime.javaUnless, of course, this again has to do with cache, which might be a possible, runtime connection.

 

All a bit iffy, I would admit. I continue to look into it.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 03, 2022 Dec 03, 2022

Copy link to clipboard

Copied

Jeff, was that update 5? If so, it did have some unusual changes unlike prior ones--and the technote for it did not indicate quite all the info that has come out since, including from Adobe.

 

For example, and as discussed in another thread (that I see you were in fact involved in) from about a month ago, Adobe recommended clearing the felix-cache folder--to which I asked them about using the cfpm purgecache option instead (but got no reply). All that's in addition to separately clearing the cfclasses folder (both to be done while cf is down), also discussed there. Had you yet tried those?

 

Then there's also the longstanding possible issue that you simply had some error DURING the update. I have a post with the needed (and not obvious) details on that, which has been helping people for years to resolve "odd problems" after an update. 

 

Can you try those and let us know if they help or not?


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 04, 2022 Dec 04, 2022

Copy link to clipboard

Copied

An update from my own research on the subject.

Funny that Charlie should mention CF2021 Update 5.  The release notes show that the update interferred with cfdocument in at least 2 ways.

 

  • CF-4212745
    cfdocument fails to embed registered fonts in PDF files, resulting in a PDF with the default font.
  • CF-4212298
    Unable to generate a PDF using cfdocument and cfhtmltopdf on a REST service.

 

I don't remember the details, but would imagine that the exception I had had to do with REST. Perhaps the ClassNotFoundException you're getting has to do with a missing embedded font. Does the HTML in your cfdocument use any special fonts?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 04, 2022 Dec 04, 2022

Copy link to clipboard

Copied

Or again just clearing cfclasses and the Felix-cache folders, as discussed in my previous note. Can you confirm you've done that, while cf is down


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 04, 2022 Dec 04, 2022

Copy link to clipboard

Copied

LATEST
quote

 ...This has worked for years on previous versions as well as in ColdFusion 2021 since we upgraded earlier this year.  After a recent ColdFusion 2021 update the cfdocument is now throwing the error "ice.storm.print.PageDecoration not found by document" when it tries to generate the PDF file. Am I missing ome sort of Java library that handles the PDF...?

 

By @jeffp80876634

 

A suggestion inspired by the information in your question:

  • Open the cfpm prompt;
  • Run the command install all
    (Assuming Windows Operating System, this is equivalent to:
    - opening the command prompt CMD as administrator;
    - navigating using cd command to {CF_HOME_DIR}\cfusion\bin;
    - running the command cfpm, followed by the command install all )

BKBK_0-1670175333002.png

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources
Documentation