2016-02-25 37 views
0

嗯,我將我的開發電腦從Windows 7升級到了Windows 10,當我嘗試運行我以前工作的應用程序時,它會生成一個奇怪的錯誤。當使用BIPublisher創建文件時,訪問被拒絕

我使用BIPublisher.FOprocessor來生成報告的pdf。 我用JDK7與Netbeans8.0.2 IDE和我的web應用程序運行在Apache Tomcat 7.0.27

當我嘗試生成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 

我得到下面的異常

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 

到目前爲止,我嘗試了很多解決方案,但都沒有成功:

  1. 授予權限輸出可怕ctory
  2. 離根部移動輸出目錄(C:
  3. 運行我的Tomcat作爲管理員
  4. 帶給用戶完全權限到本地驅動器

我的想法。任何人都知道這裏有什麼問題?很明顯,代碼不是問題,因爲它在Windows 7中運行正常,並且Windows Server 2008在其中部署了我的生產環境。

回答

0

問題是我必須使用提升的命令運行Netbeans IDE才能部署具有完全權限的應用程序。

在$ NETBEANS_INSTALLATION_PATH \ BIN \ netbeans64.exe>屬性>兼容性>更改設置爲所有用戶 - >勾選選項Run this program as an administrator

enter image description here

相關問題