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

QQ登录

只需一步,快速开始

查看: 2143|回复: 5

[结贴] 关于Baas部署不能立即生效的问题解决经历

  [复制链接]

24

主题

90

帖子

294

积分

中级会员

Rank: 3Rank: 3

积分
294
QQ
发表于 2016-8-29 12:26:49 | 显示全部楼层 |阅读模式
蒸腾了整整一天才解决的此问题,希望能对大家有帮助

开发环境 WeX5 3.3 , 运行环境 WeX5 3.3,我这里偷懒了,运行环境还是用起步的,直接使用“启动WeX5运行平台.bat” 启动Tomcat。


遇到问题描述:
  按照视频教程,分别部署了Baas 和 UI资源, 开发环境运行很好, 部署完就报 servlet 无法连接错误。返回错误类似下面:
HTTP Status 500 - com.justep.baas.action.ActionException: 获取Class[jf.Mlinterface__do] Method[test1]失败

于是尝试用 http://www.yourdomain.com/baas/jf/Mlinterface/test1 去连接,也会报上面的错误。
但是访问 http://www.yourdomain.com/baas/weixin/weixin/service 返回“非法请求”,这是正常的,因为是业务程序返回的。

问题解决经过的尝试:
1。本地开发环境使用 http://localhost:8080/baas/jf/Mlinterface/test1 访问同样失败
2。在Eclipse开发环境,选择菜单 项目-〉清理,勾选BaasServer,清理后,再次编译baas模型
3。本地开发环境使用 http://localhost:8080/baas/jf/Mlinterface/test1 成功
4。将开发环境的BaasServer,复制到生产环境Tomcat的Webapps目录下,重新启动Tomcat。悲剧来了。。。
5。还是通 http://www.yourdomain.com/baas/jf/Mlinterface/test1 来访问生产环境的servlet,依然报上面的错。但 http://www.yourdomain.com/baas/weixin/weixin/service 依然工作正常,顽强!!!
6。一生气删生产环境Tomcat的Webapps目录下baas目录,访问 http://www.yourdomain.com/baas/weixin/weixin/service 依然工作正常,奇怪了!Tomcat的缓存那么厉害吗?
7。开始怀疑是否去调用生产环境下的WeX5\runtime\baasServer, 果断的去删除(其实是改名)baasserver目录,访问 http://www.yourdomain.com/baas/weixin/weixin/service 停止工作!!!正式我想看到了!!!
8。用开发环境编译好的BaasServer覆盖生产环境的BaasServer,访问http://www.yourdomain.com/baas/weixin/weixin/service居然还是失败
9。用开发环境编译好的BaasServer复制到生产环境Tomcat的Webapps下,http://www.yourdomain.com/baas/jf/Mlinterface/test1,成功了!出现了返回数据。


总结:
1。开发环境编译的时候,最好进行第2部的清理工作
2。发布到运行环境后,如果没有生效(当然开发环境要工作正常),很有可能是Tomcat缓存的问题,在我这次经验中,由于采用了WeX5集成环境。部署到webapps下时候没有立即生效,破坏了runtime\baasserver目录后,就生效了,怀疑是baas的路径指向了runtime\baasserver。但为什么第8步还没有成功,这点我还没有搞清楚,请高手指点!

QQ: 18239256

11

主题

35

帖子

121

积分

初级会员

Rank: 2

积分
121
QQ
发表于 2016-8-29 13:37:07 | 显示全部楼层
我也遇到了 编译问题,之前是部署到服务器上 显示后加入的ACtion没编译,后来把系统的runtime 下的baasserver 的jar包拷过去就好了,但是,现在本地studio里又 不行了,一天找BUG头都大了,。
回复 支持 反对

使用道具 举报

发表于 2016-8-29 16:35:31 | 显示全部楼层
是这样的!baasServer 优先访问 runtime\BaasServer\baas 这里面的class 资源!如果这里不存在 就会加载runtime\BaasServer\WEB-INF\lib\baas_model_service.jar  这个jar包中的class资源的!

所以,你只需要把这两部资源全部删除!然后重新编译!,就可以保证生产的class资源是最新的!
部署正式服务器的时候,值放置\baas_model_service.jar 就可以了!当个的untime\BaasServer\baas 不必放上去!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

24

主题

90

帖子

294

积分

中级会员

Rank: 3Rank: 3

积分
294
QQ
 楼主| 发表于 2016-8-30 10:18:34 | 显示全部楼层
liangyongfei 发表于 2016-8-29 16:35
是这样的!baasServer 优先访问 runtime\BaasServer\baas 这里面的class 资源!如果这里不存在 就会加载run ...

正解!经过测试,最好的方法就是将开发环境 \BaasServer\WEB-INF\lib\baas_model_service.jar 文件 复制到 apache-tomcat\webapps\baas\WEB-INF\lib下面, 重启Tomecat,同时删除 apache-tomcat\webapps\baas 下面的所有class文件,必须滴!
追加问题:
在部署完baas_model_service.jar后,有没有不需要重启Tomecat就让新包生效的方法?


QQ: 18239256
回复 支持 反对

使用道具 举报

发表于 2016-8-30 12:00:19 | 显示全部楼层
大苏-3区 发表于 2016-8-30 10:18
正解!经过测试,最好的方法就是将开发环境 \BaasServer\WEB-INF\lib\baas_model_service.jar 文件 复制 ...

没有!只有重启的时候加载一次资源!替换jar包,必须要重启服务才行!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

24

主题

90

帖子

294

积分

中级会员

Rank: 3Rank: 3

积分
294
QQ
 楼主| 发表于 2016-8-30 14:27:33 | 显示全部楼层
liangyongfei 发表于 2016-8-30 12:00
没有!只有重启的时候加载一次资源!替换jar包,必须要重启服务才行!

多谢!可以结贴了!
QQ: 18239256
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 07:46 , Processed in 0.052316 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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