2016-02-25 38 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

相关问题