`
jamie.wang
  • 浏览: 346950 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

dea-warden内部查错

阅读更多

dea启动应用实例后,会异步探测应用访问端口(宿主机上的端口,如:61003),如果多次探测都无法连接,dea会认为应用启动失败,随即会销毁容器,导致现场不能保留。

解决办法:

  1. 注释代码中的destroy
    代码/var/vcap/packages/dea_next/lib/dea/task.rb,在方法:promise_destroy和destroy直接返回return

常用路径

warden.yml中

部署路径:container_depot_path:/var/vcap/data/warden/depot

例如:

java tomcat的路径:/var/vcap/data/warden/depot/186jdkndjf8/tmp/rootfs/home/vcap/app/.java-buildpack/tomcat

186jdkndjf8是部署的编号

进入容器

首先要编译warden

进warden代码目录:

# gem install bundler

# bundle install

连接容器

bundle exec bin/warden -s /var/vcap/data/warden/warden.sock

列出容器

warden> list
handles[0] : 186jdkndjf8

执行命令

warden> run --handle 186jdkndjf8 --script 'ls /home/vcap/logs'

 

jpetstore部署失败,原因:

jpetstore用到了spring-framework,并且用到了mybatis做O/R map,jdbc连接数据库。

dea调用buildpack探测到jpetstore这些特性后,为了实现动态替换数据库服务地址,动态的修改了web.xml,添加了jar包。

该jar包依赖的spring-context.jar包的一个类:ApplicationContextInitializer,

但jpetstore中的spring-context.jar包版本较老,不包该类,导致启动失败,错误:

 

Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContextInitializer
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1293)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1145)

解决办法:替换spring-context.jar为3.1以上的版本。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics