今天遇到个bug。
这是个导出功能,使用的是POI,使用已经做好的模板,向里面添加数据,在action中进行处理。
首先取得模板,
路径:
\\export\\excel\\template\\temp.xls
代码:
String modelpath = getRequest().getSession().getServletContext().getRealPath("/")+ CommonConstants.MODEL_PATH;
我电脑使用的win7系统。以上代码我在本地tomcat测试,很正常。导出一点问题没有。
当提交到测试组,测试就报出bug:
java.io.FileNotFoundException: /usr/local/apache-tomcat-5.5.23/webapps/项目名称\export\excel\template\temp.xls (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileInputStream.<init>(FileInputStream.java:66)
at com.stock.wrhcheck.web.StockCheckAction.exportExcel(StockCheckAction.java:85)
。。。。。。
开始还觉得很奇怪,怎么会就找不到模板文件呢?
仔细想下,想起不同系统的文件分隔符是不相同的:
获得系统名字
System.out.println(System.getProperty( "os.name "));
----------------------------
获得系统文件分隔符
System.out.println(System.getProperty("file.separator"));
文件分隔符,各个操作系统不一样
如WIndows的是"\",而Unix的是"/"
修改成下面就没问题了:
String modelpath = getRequest().getSession().getServletContext().getRealPath(CommonConstants.FILESEPARATOR)+ CommonConstants.MODEL_PATH;
public static final String FILESEPARATOR = System.getProperty("file.separator");
public static final String MODEL_PATH =FILESEPARATOR+"export"+FILESEPARATOR+"excel"+FILESEPARATOR+"template"+FILESEPARATOR+"temp.xls" ;
虽然问题很小,如果不注意所不定要花费很久去处理。还好想起系统分隔符的原因:
分享到:
相关推荐
在进行数据导出和导入时,需要注意权限问题,确保连接数据库的用户拥有足够的权限,以便能够成功地导出和导入数据。此外,还需要注意数据的一致性和完整性,确保数据在导出和导入过程中保持不变。 通过使用 EXPDP ...
下面我们将深入探讨如何使用WinSCP来实现Linux到Windows的文件导出操作。 首先,你需要在Windows系统上下载并安装WinSCP。访问官方网站(https://winscp.net/eng/download.php)下载最新版本的安装包,按照向导步骤...
在将Window上的Tomcat项目迁移到Linux系统时,主要涉及以下几个关键步骤: 1. **JDK的配置**: - 首先,需要从Oracle官网(现在是 AdoptOpenJDK 或 Amazon Corretto 等提供者)下载适用于Linux平台的JDK。确保下载...
在 Unity 项目中,我们有时会需要生成带有文本、表格和图片的 PDF 文件,以便生成报告或保存导出的文档。本教程将详细讲解如何使用 iTextSharp 库在 Unity 中实现 PDF 文件的生成、导出和打开。
1. **查询数据**:首先,在PL/SQL Developer的SQL Window中执行SQL查询,获取需要导出的数据。 2. **导出数据**:在查询结果集上,即在结果显示区域(注意不要选中任何具体的行或单元格),点击鼠标右键,选择...
在描述中提到的"qt输出excel文档,linux window下均可使用",指的是利用Qt库来生成和写入Microsoft Excel文件,这种功能在各种操作系统上都具备良好的兼容性,包括Linux和Windows。 QtXlsxWriter是Qt生态系统中的一...
- **Linux命令.docx**:在开发和运维过程中,Linux命令行工具常用于日常操作和问题排查。 - **高可用要求.docx**:高可用性是系统设计的重要目标,确保服务的稳定性和不间断运行。 结合以上信息,我们可以构建一...
标题中的“window和linux和android进程内存CPU等监控软件”是指一种跨平台的系统监控工具,它可以用于Windows、Linux和Android操作系统,目的是实时监测和分析系统中的进程对内存、CPU以及GPU资源的占用情况。...
为了解决这个问题,“Linux Reader”应运而生,它是一款专为Windows设计的工具,能够帮助用户在不安装虚拟机或双系统的情况下,轻松浏览和管理Ubuntu文件系统。 “Linux Reader”是一个压缩包文件,名为“linux-...
PUTTY是一款广受欢迎的开源软件,主要用于Windows系统用户远程连接Linux服务器,实现SSH(Secure Shell)协议的终端仿真。这款工具因其简洁、易用且免费的特性,在IT行业中被广泛使用。下面将详细介绍PUTTY系列工具...
本文将介绍一种跨平台的解决方案,该方案不仅能够实现Word到PDF的转换,还支持TXT、XLSX等其他格式文件的转换,并且在Linux和Windows系统下都有良好的支持。 #### 技术背景 LibreOffice是一款功能强大的开源办公...
sqluldr2是一款Oracle数据快速导出工具,包含32、64位程序,sqluldr2在大数据量导出方面速度超快,能导出亿级数据为excel文件,另外它的导入速度也是非常快速,功能是将数据以TXT/CSV等格式导出,有需要的赶快下载吧...
它允许开发者创建交互式、高性能的图形应用,直接在用户的设备上运行,包括桌面系统(如Windows、Linux、Mac)以及移动设备(如Android)。WebGL技术的核心是OpenGL ES 2.0的Web实现,提供了对GPU硬件加速的支持,极...
Cursor Linux版本0.1.11是一款专为Linux操作系统设计的新型代码编辑器,它旨在提供高效、便捷的代码编写体验。此版本的发布标志着Cursor编辑器在Linux平台上的一个新里程碑,它集成了多种先进的功能和优化,以满足...
在Linux系统中,尤其是服务器环境,常常遇到与Windows系统不同的问题,例如字体兼容性问题。在本主题中,我们关注的是如何在CentOS和Ubuntu这样的Linux发行版中下载并安装宋体,以及解决在使用Selenium控制谷歌浏览...
例如,窗口管理器和X Window System在Linux GUI中的角色,以及如何通过Qt与这些底层系统交互。同时,由于Linux的多线程特性,Qt提供了QThread类来支持并发编程,使得开发者可以创建复杂的、响应迅速的用户界面。 ...
描述中提到,“在将模板内字体格式都改为华文宋体后,把该文件放入工程内的resource资源目录下,即可解决jasper的中文无法正常显示问题”。这句话揭示了两个关键点: 1. **字体替换**:jasperReports在默认情况下...
这里需要注意,`TMOUT=0`指定了超时时间为0秒,`export TMOUT`则将这个环境变量导出到当前的shell环境中,确保它对所有子进程都有效。 保存并关闭文件后,为了使更改生效,还需要执行`source /etc/profile`命令。 ...
在Linux上,Redis通常通过命令行交互,但`b_linux版`提供了图形化的界面,用户可以更直观地查看和编辑键值对,进行数据导入导出,监控Redis服务器性能等操作。这样的可视化工具能够帮助开发者和运维人员在没有熟悉...
本主题将围绕“Go语言的插件(window+linux)”展开,探讨在Windows和Linux操作系统上如何开发和使用Go语言的插件。 在Go语言中,插件(Plugin)是一种在运行时加载和使用的代码模块,允许我们实现动态扩展程序的...