CFPDF/processDDX problems with sandbox security

    Posted At : April 5, 2008 5:53 AM

Earlier this week I was working on an app that required some basic PDF manipulation with CFPDF and processDDX. The code worked fine on my server, but threw the following error when deployed to the hosting environment.

500
ROOT CAUSE:
java.lang.NoClassDefFoundError: Could not initialize class com.adobe.internal.ddxm.io.Document
   at coldfusion.pdf.PDFDocOperation.getDDXMap(PDFDocOperation.java:956)
   at coldfusion.pdf.PDFDocOperation.processDDX(PDFDocOperation.java:1099)
   at coldfusion.tagext.lang.PDFTag.doEndTag(PDFTag.java:976)
   at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2662)
   at cftest22ecfm1476995377.runPage(D:\Websites\test\new3\test2.cfm:33)
   at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:196)
   at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:370)
   at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
   at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:279)
   at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
   at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
   at coldfusion.filter.PathFilter.invoke(PathFilter.java:86)
   at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)
   at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:74)
   at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
   at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
   at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)
   at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
   at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
   at coldfusion.CfmServlet.service(CfmServlet.java:175)
   at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
   at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
   at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
   at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
   at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
   at com.seefusion.SeeFusion.doFilter(SeeFusion.java)
   at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
   at jrun.servlet.FilterChain.service(FilterChain.java:101)
   at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
   at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
   at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
   at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
   at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
   at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
   at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
   at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
   at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)



javax.servlet.ServletException: ROOT CAUSE:
java.lang.NoClassDefFoundError: Could not initialize class com.adobe.internal.ddxm.io.Document
   at coldfusion.pdf.PDFDocOperation.getDDXMap(PDFDocOperation.java:956)
   at coldfusion.pdf.PDFDocOperation.processDDX(PDFDocOperation.java:1099)
   at coldfusion.tagext.lang.PDFTag.doEndTag(PDFTag.java:976)
   at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2662)
   at cftest22ecfm1476995377.runPage(D:\Websites\test\new3\test2.cfm:33)
   at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:196)
   at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:370)
   at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
   at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:279)
   at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
   at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
   at coldfusion.filter.PathFilter.invoke(PathFilter.java:86)
   at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)
   at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:74)
   at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
   at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
   at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)
   at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
   at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
   at coldfusion.CfmServlet.service(CfmServlet.java:175)
   at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
   at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
   at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
   at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
   at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
   at com.seefusion.SeeFusion.doFilter(SeeFusion.java)
   at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
   at jrun.servlet.FilterChain.service(FilterChain.java:101)
   at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
   at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
   at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
   at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
   at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
   at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
   at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
   at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
   at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

   at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:70)
   at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
   at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
   at com.seefusion.SeeFusion.doFilter(SeeFusion.java)
   at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
   at jrun.servlet.FilterChain.service(FilterChain.java:101)
   at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
   at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
   at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
   at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
   at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
   at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
   at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
   at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
   at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

Mathew Ford from Ayera Technologies pointed out that it may be related to sandbox security.

Once sandbox security was turned off, the page worked like a charm. While sandbox security was on, even with no restrictions the templte would throw an error.

Here is the test code:

<!--- Create Test PDF --->
<cfdocument format="pdf" name="pdfSample">
Test document
</cfdocument>
<cfpdf action="write" overwrite="yes" source="pdfSample" destination="#getdirectoryfrompath(getCurrentTemplatePath())#sample_empty.pdf" >

<!--- Create in/out structure for processDDX --->
<cfset in=StructNew()>
<cfset in.SourceFile="sample_empty.pdf">
<cfset out=StructNew()>
<cfset out.DestinationFile="sample_ddx.pdf">

<!--- Create DDX code --->
<cfsavecontent variable="theDDX">
<?xml version="1.0" encoding="UTF-8"?>
<DDX xmlns="http://ns.adobe.com/DDX/1.0/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ns.adobe.com/DDX/1.0/ coldfusion_ddx.xsd">

   <PDF result="DestinationFile">
<Watermark rotation="0" opacity="100%" horizontalOffset="-215pt" verticalOffset="-360pt" showWhenPrinting="true">
<StyledText>
<p font-size="8pt" color="black" font="Arial">Name:<span font-size="10pt" color="black" font="Freestyle Script">Shlomy Gantz</span></p>
<p font-size="8pt" color="black" font="Arial">Company: BlueBrick</p> <p font-size="8pt" color="black" font="Arial">Date:<cfoutput>#dateformat(now(),"mm/dd/yyyy")# #timeformat(now(),"medium")#</cfoutput></p>
<p font-size="8pt" color="black" font="Arial">Transaction ID: 1ED3477617263721CADS6763</p>
</StyledText>
</Watermark>
<PDF source="SourceFile"/>
</PDF>
</DDX>
</cfsavecontent>

<!--- Process the DDX --->
<cfpdf action="processddx" ddxfile="#theDDX#" inputfiles="#in#" outputfiles="#out#" name="ddxRet">

<!--- Show the results --->
<cfdump var="#ddxRet#" label="DDX return information">
<BR>
<a href="sample_ddx.pdf">sample_ddx.pdf</a>
<BR>

Comments
Powered by BlogCFC

HostMySite.com Web Hosting Provided by www.HostMySite.com

Aggregated by fullasagoog.com
[Valid RSS]

Add to Google