0

Well, I upgraded my development pc to windows 10 from windows 7. When I try to run my application that was previously working now it generates a weird error.

I use BIPublisher.FOprocessor to generate pdfs for reporting. I use jdk7 with Netbeans8.0.2 IDE and my web application runs on Apache Tomcat 7.0.27

When I try to generate the pdf

        //Now process the XSLFO template against the XML data      
        // Instantiate the FOprocessor      
        FOProcessor processor = new FOProcessor();
        // set CFG input file     
        processor.setConfig(sourceFileLocation + "xdo.cfg");
        // set XML input file     
        processor.setData(sourceOutputFileLocation + inputXMLFile);
        // set XSL input file      
        processor.setTemplate(sourceOutputFileLocation + inputXSLFile);

        // set the output format 
        if (fOutputFormat.equalsIgnoreCase(".pdf")) {
            processor.setOutputFormat(FOProcessor.FORMAT_PDF);
        } else if (fOutputFormat.equalsIgnoreCase(".html")) {
            processor.setOutputFormat(FOProcessor.FORMAT_HTML);
        } else if (fOutputFormat.equalsIgnoreCase(".xls")) {
            processor.setOutputFormat(FOProcessor.FORMAT_EXCEL);
        } else if (fOutputFormat.equalsIgnoreCase(".rtf")) {
            processor.setOutputFormat(FOProcessor.FORMAT_RTF);
        } else {
            processor.setOutputFormat(FOProcessor.FORMAT_PDF);
            outputFile = Fname + rInt + ".pdf";
        }

        //set output file      
        processor.setOutput(outputLocation + outputFile);
        processor.generate(); //HERE IS THE EXCEPTION

I get the following exception

WARNING: oracle.xdo.XDOIOException: java.io.IOException: Access is denied
    at oracle.xdo.template.FOProcessor.getTmpFOFile(FOProcessor.java:2003)
    at oracle.xdo.template.FOProcessor.createFO(FOProcessor.java:1971)
    at oracle.xdo.template.FOProcessor.generate(FOProcessor.java:1117)
    at admin.reports.XMLpublisher.foProcessorEngine(XMLpublisher.java:97)
    at admin.reports.XMLpublisher.XMLout_CreateDocument(XMLpublisher.java:371)
    at admin.db.TR.DownloadAttendeeLunchList.getReport(DownloadAttendeeLunchList.java:101)
    at admin.db.TR.DownloadAttendeeLunchList.processRequest(DownloadAttendeeLunchList.java:42)
    at admin.db.TR.DownloadAttendeeLunchList.doGet(DownloadAttendeeLunchList.java:128)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at com.opcat.gzip.GZIPFilter.doFilter(GZIPFilter.java:36)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Access is denied
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    at java.io.File.createTempFile(File.java:2001)
    at oracle.xdo.common.tmp.TmpFile.createTmpFile(TmpFile.java:85)
    at oracle.xdo.template.FOProcessor.getTmpFOFile(FOProcessor.java:1999)
    ... 28 more

Feb 25, 2016 1:02:57 PM oracle.xdo.template.FOProcessor 
SEVERE: End Memory: max=2709MB, total=872MB, free=117MB

I tried a lot of solutions so far but none works:

  1. Give Permissions to output directory
  2. Move the output directory away from the root (c:)
  3. Run my Tomcat as Administrator
  4. Give full permissions of the user to my local drive

I am out of ideas. Anyone with a clue what is the issue here? Clearly the code is not the issue because it is running ok in Windows 7, and windows server 2008 where is deployed my production environment.

MaVRoSCy
  • 17,747
  • 15
  • 82
  • 125

1 Answers1

0

The problem was that I had to run Netbeans IDE with an elevated command in order to deploy my application with full permissions.

In $NETBEANS_INSTALLATION_PATH\bin\netbeans64.exe > Properties > Compatibility > Change Settings for all users -> Tick option Run this program as an administrator

enter image description here

MaVRoSCy
  • 17,747
  • 15
  • 82
  • 125