起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3057|回复: 2

[结贴] BAAS编译后,会在runtime\BaasServer\WEB-INF下面产生classes吗

[复制链接]

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
发表于 2016-4-21 18:24:33 | 显示全部楼层 |阅读模式
我这里编译前没有,编译后就产生了这个目录,不产生还好,一旦产生就出问题了,tomcat加载这个目录下面的类库,之后附件的路径改变了,报错提示:
com.justep.baas.action.ActionException: Action[justep/attachment/simpleFileStore]执行失败,D:\BeX5_V3_4\runtime\BaasServer\WEB-INF\classes\..\..\data\attachmentSimple\46\C709B8A1414000011F3A1AAE21E014E2 (系统找不到指定的路径。)

如果不产生这个classes目录的话,实际调试了下,路径是
/D:/BeX5_V3_4/apache-tomcat/lib/..\..\data\attachmentSimple\46\C709B8A1414000011F3A1AAE21E014E2

请问这种变更路径的情况如何解决?

12

主题

2627

帖子

2866

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2866
发表于 2016-4-21 18:47:39 | 显示全部楼层
Baas上的模型编译两种: 一种是
“模型编译”: 用于发布使用; 会生成相应的jar在BaasWerver/WEB-INF/lib下;
"模型编译(调试)": 用于开发调试; 会生成将Baas的内容编译到BaasServer\WEB-INF\classes;

方案一: 从使用上进行规范;
建议你使用的时候, 调试都有"模型编译(调试)"; 发布时, 使用“模型编译”生成jar; 这样就不会有出现两个目录的问题;

方案二: 直接修改/Baas/justep/SimpleFileStore.java这个类, 按自己的需求改成某个合适的路径;

另: 这个问题在后续版本中会解决


回复 支持 反对

使用道具 举报

64

主题

471

帖子

1127

积分

金牌会员

Rank: 6Rank: 6

积分
1127
 楼主| 发表于 2016-4-22 15:56:42 | 显示全部楼层
hecr 发表于 2016-4-21 18:47
Baas上的模型编译两种: 一种是
“模型编译”: 用于发布使用; 会生成相应的jar在BaasWerver/WEB-INF/lib下; ...

我将原来的static构造函数删了,修改了service函数为如下代码,就解决了这个依赖类库路径导致文件存储基地址改变的问题了:
  1.         public static JSONObject service(JSONObject params, ActionContext context) throws ServletException, IOException {
  2.                
  3.                 HttpServletRequest request = (HttpServletRequest)context.get(ActionContext.REQUEST);
  4.                 HttpServletResponse response = (HttpServletResponse)context.get(ActionContext.RESPONSE);
  5.                
  6.                 String baasPath = request.getSession().getServletContext().getRealPath("/") + ".." + File.separator + "..";
  7.                 docStorePath = baasPath + File.separator + "data" + File.separator + "attachmentSimple";
  8.                 File file = new File(docStorePath);
  9.                 if(!(file.exists() && file.isDirectory())){
  10.                         file.mkdirs();
  11.                 }
  12.                 docStoreDir = file;
  13.                
  14.                 if(request.getMethod().equals("GET")){
  15.                         doGet(request, response);
  16.                 }else if(request.getMethod().equals("POST")){
  17.                         doPost(request, response);
  18.                 }
  19.                 return null;
  20.         }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-19 17:54 , Processed in 0.106923 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表