a******m 发帖数: 57 | 1 我做了一个Spring web app, 打算部署在IBM Bluemix Liberty。现在问题是我的app有
一个上传图片的功能,我把用户上传的图片先写在服务器的 file system 里面,然后
导入database。 服务器serve图片的时候再把图片从database导出,写到服务器file
system。
我部署的时候用的是.war。 现在的问题是在写入服务器file system的时候需要用
ServletContext.getRealPath(String s), 这个method得到写入文件的路径。这个
method在我的本地工作良好,可是在Bluemix里面得到的是null, 也就是说没有一个
real path。
不知这个问题如何解决,如何配置liberty的server使这个getRealPath正常工作。或者
说部署时候用的war文件没有real path, 需要换一种方式部署?
多谢 |
b******y 发帖数: 9224 | 2 "我把用户上传的图片先写在服务器的 file system 里面,然后导入database。"
感觉楼主有些把简单的问题复杂化了。直接存文件系统不就行了吗?然后,render的时
候可以自己写一个程序把文件render到web上,或者直接用Apache就可以了,就是存到
Apache的document root里。 |
j******z 发帖数: 14 | 3 app是无状态的,文件系统就不要想了,直接数据库存,数据库serve吧 |
g*****g 发帖数: 34805 | 4 直接设个 path prefix 的config就行了,不同环境不同值。
【在 a******m 的大作中提到】 : 我做了一个Spring web app, 打算部署在IBM Bluemix Liberty。现在问题是我的app有 : 一个上传图片的功能,我把用户上传的图片先写在服务器的 file system 里面,然后 : 导入database。 服务器serve图片的时候再把图片从database导出,写到服务器file : system。 : 我部署的时候用的是.war。 现在的问题是在写入服务器file system的时候需要用 : ServletContext.getRealPath(String s), 这个method得到写入文件的路径。这个 : method在我的本地工作良好,可是在Bluemix里面得到的是null, 也就是说没有一个 : real path。 : 不知这个问题如何解决,如何配置liberty的server使这个getRealPath正常工作。或者 : 说部署时候用的war文件没有real path, 需要换一种方式部署?
|
a******m 发帖数: 57 | 5 这个应用用户上传的图片比较多,刚开始也是想存CDN的,但是目前暂时存。问题是不
管存哪,上传的时候是byte data,开始总要写到一个文件里。这个文件的路径就是我
想要的,因为要存在那个路径。用servletContext在localhost可以得到路径,部署在
bluemix以后就得不到apache的web root路径了。
【在 b******y 的大作中提到】 : "我把用户上传的图片先写在服务器的 file system 里面,然后导入database。" : 感觉楼主有些把简单的问题复杂化了。直接存文件系统不就行了吗?然后,render的时 : 候可以自己写一个程序把文件render到web上,或者直接用Apache就可以了,就是存到 : Apache的document root里。
|
a******m 发帖数: 57 | 6 多谢指导!可是问题就是如何得到这个path prefix,之前搜的时候得到的结果是用
servletContext 得到real path, 现在部署之后得不到了。问题进入死循环,所以才
到版上问的。
【在 g*****g 的大作中提到】 : 直接设个 path prefix 的config就行了,不同环境不同值。
|
g*****g 发帖数: 34805 | 7 弄个property file在classpath上,一般是web-inf/classes, 用spring的
ClassPathResource load就行了。
【在 a******m 的大作中提到】 : 多谢指导!可是问题就是如何得到这个path prefix,之前搜的时候得到的结果是用 : servletContext 得到real path, 现在部署之后得不到了。问题进入死循环,所以才 : 到版上问的。
|
a******m 发帖数: 57 | 8 问题解决了,感谢goodbug!
【在 g*****g 的大作中提到】 : 弄个property file在classpath上,一般是web-inf/classes, 用spring的 : ClassPathResource load就行了。
|