JFinal renderFile() 在Tomcat中报404错误

烟火里的尘埃丶 发布于 2015/06/18 08:39
阅读 1K+
收藏 0

@JFinal 你好,想跟你请教个问题:我的下载路径设置如下:me.setFileRenderPath("/upload/file"); 当我用renderFile(filename)下载文件时,在Jetty中没问题,但是在Tomcat中会报404错误,请问这么怎么回事?如何解决?谢谢

加载中
0
柏show
柏show
看看是不是项目路径错了,,之前可能是localhost,换tomcat变成localhost:8080/xx之类的
柏show
柏show
回复 @小城丨故事 : 在这个action中打印日志信息,并在config中设置me.setDevMode(true)
烟火里的尘埃丶
烟火里的尘埃丶
项目运行没问题,就是renderFile()报404错误。
0
SaltyEgg
SaltyEgg

是不是因为tomcat容器中,你需要在url中添加project的名字?

如: http://127.0.0.1/XXX/upload/file ?

烟火里的尘埃丶
烟火里的尘埃丶
回复 @疯狂de咸蛋 : 能看一下你写的例子吗?
SaltyEgg
SaltyEgg
回复 @小城丨故事 : 好奇怪。如果确定文件存在且路径正确的话,那应该没问题的,我之前一直好用的。坐等大神回复
烟火里的尘埃丶
烟火里的尘埃丶
不好使啊,我真是无奈了
0
SaltyEgg
SaltyEgg

嘿嘿,不好意思,之前我是用的绝对地址,我没把文件放在tomcat之类的container中,我是通过renderFile把文件动态加载给用户。

public void pdf() {
	Integer projectId = getParaToInt(0);
	String fileName = Project.dao.getFileName(projectId);
	String path = Const.FILE_DIRECTORY;

	log.info("filepath : " + path + fileName);
	//File file = new File("C:/Users/hzhou/Downloads/test.pdf");
	File file = new File(path + fileName);
	renderFile(file);
}




烟火里的尘埃丶
烟火里的尘埃丶
回复 @疯狂de咸蛋 : 其实在项目部署之后,把以前上传的文件删除了,然后重新上传就不存在问题了。在myeclipse中进行测试时上传的中文文件打包部署时文件名就会乱码,没多大影响。
SaltyEgg
SaltyEgg
回复 @小城丨故事 : 在保存的时候重命名可以不?
烟火里的尘埃丶
烟火里的尘埃丶
我找到原因了,不是项目路径的问题,是打包成war之后,上传的中文文件名发生乱码了,所以部署到tomcat之后就404了,不过没找到解决的办法。
0
JFinal
JFinal
应该是部署在 tomcat 时使用了 context path值,造成了 url 的改变,参考一下我写的这篇博客来部署:http://my.oschina.net/jfinal/blog/353062
返回顶部
顶部