求助, JavaWeb 问题,一句话说不明白,详见正文

2017-04-05 16:03:09 +08:00
 ray0625

JavaWeb 中用到了第三方软件生成的统计数据报表,但是每个客户使用的报表都是不同的,我在打 war 包的时候需要把所有的报表都打进去。关键是用户可以在使用过程中导入新的报表,但是这些报表都没保存到 war 包里,只要服务一重启,这些表就丢了,需要客户重新导入,客户表示很不满意。求问各位 v 友大神,有没有什么解决办法,,

ps :服务器有 Linux 的也有 windows 的

2996 次点击
所在节点    Java
16 条回复
domty
2017-04-05 16:54:09 +08:00
意思是要把用户打包的数据弄成类似静态资源一类的东西?

这你要不然把所有的数据都分析后打包到数据库里,要导出的时候静态生成。
要不就写个接口保存到服务器本地路径或者 7 牛这样的远程存储供应商那里呗?
ray0625
2017-04-05 17:02:29 +08:00
@domty 谢谢,目前看放到本地服务器可行,或者我们有单独的存储区可以用~~然后想问一下把数据都分析后打包到数据库里,这种如何实现呢?什么样 l 类型的文件都行吗?比如我们现在用到的是第三方自己定义的一种文件:xxx.cpt
domty
2017-04-05 17:09:02 +08:00
@ray0625 #2

只要你们的 Java 程序能读取文件把文件的主要信息解析出来就行。
lcorange
2017-04-05 17:18:20 +08:00
你的文件上传路径是 webapp 下面,这个文件夹在重新发布的时候是全删后重新解压 war 的。所以都没了
1. 要么像 1#一样,开个云文件,或者保存到服务器本地目录
2. 让运维部署 war 时写个脚本,先把 cpt 文件复制出来,然后部署 war ,然后覆盖回去
3. 存数据库的话,可以转成 byte 数组,存进去,这样就无所谓什么格式了
sagaxu
2017-04-05 17:49:10 +08:00
不要把用户数据和代码放在一起
340244120
2017-04-05 18:33:19 +08:00
上传文件放到应用外面 保持独立
NUT
2017-04-05 19:05:55 +08:00
做一个文件服务器
wc951
2017-04-05 20:20:37 +08:00
数据库可以存个 blob 字段
Ouyangan
2017-04-05 21:35:28 +08:00
1.新增两个表 , 文件表(原文件名,重命名,大小,访问 url) ,用户文件表(文件 id,用户 id)
2.新建一文件目录用于放置用户文件, 量不大的话 tomcat 配一个虚拟目录 .

好处是这样迁移到云上只需要上传文件到云服务器 ,批量替换访问 url 即可.
Ouyangan
2017-04-05 21:36:27 +08:00
@Ouyangan #9 存在 多个服务器还是推荐楼主上云 ,不贵 .
luban
2017-04-05 21:45:04 +08:00
最简单的方式,不要用 war 包部署,直接用文件夹方式
比较合理的方式,存客户报表的文件夹挪到 war 包外面
ray0625
2017-04-06 09:26:54 +08:00
@lcorange 谢谢,打算用类似第一种的方法了。上传时放到存储区和 webapps 的文件夹下,下次 tomcat 启动时,直接从存储区移动过来
ray0625
2017-04-06 09:28:59 +08:00
@sagaxu 不是用户数据,是查询用户数据的一个模板
ray0625
2017-04-06 09:53:03 +08:00
@Ouyangan 恩,我们在云上和局域网都有,看客户要求,,哭哭
jalena
2017-04-06 10:03:45 +08:00
不用 war 的形式部署不就可以了?或者你关闭 war 的自动解包功能!
sagaxu
2017-04-06 10:49:05 +08:00
@ray0625 如果用户可以自己导入或者修改模板,模板本身就是用户数据的一种

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/352679

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX