0

“grails cf-push”会导致下面列出的错误。有没有办法使用 cloudfoundry 插件“重新开始”。我不希望在 MySQL 数据库和 MongoDB 数据库中丢失我的测试数据。

May 18, 2012 6:31:26 PM org.apache.catalina.core.StandardContext start

严重:错误 listenerStart 2012 年 5 月 18 日下午 6:31:26 org.apache.catalina.core.StandardContext start 严重:Context [] 由于先前的错误而启动失败 2012 年 5 月 18 日下午 6:31:26 org.apache.catalina .loader.WebappClassLoader clearThreadLocalMap 严重:Web 应用程序 [] 创建了一个 ThreadLocal,其键类型为 [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler](值 [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@6434d75f])和 [java.lang.ref.SoftReference] 类型的值(值 [java.lang.ref.SoftReference@4927d15e]),但在 Web 应用程序停止时未能将其删除。这很可能造成内存泄漏。2012-05-18 18:31:26,379 [main] 错误 context.ContextLoader - 上下文初始化失败 org.springframework.beans.factory.BeanCreationException:创建名为 ' 的 bean 时出错 grailsApplication' 在 ServletContext 资源 [/WEB-INF/applicationContext.xml] 中定义:调用 init 方法失败;嵌套异常是 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455) 的 java.lang.NoClassDefFoundError: org/apache/http/conn/ClientConnectionManager 在 org.springframework.beans.factory.support。 AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java :294) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry。

StandardContext start 严重:Context [] 由于先前的错误而启动失败 2012 年 5 月 18 日下午 6:41:02 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap 严重:Web 应用程序 [] 创建了一个 ThreadLocal,其键类型为 [org. codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler](值 org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@6d1576d7])和类型为 [java.lang.ref.SoftReference] 的值(值 [java.lang.ref. SoftReference@1c2d5534]) 但在 Web 应用程序停止时未能将其删除。这很可能造成内存泄漏。ThreadLocalMapHandler](值 org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@6d1576d7])和类型为 [java.lang.ref.SoftReference] 的值(值 [java.lang.ref.SoftReference@1c2d5534])但未能当 Web 应用程序停止时将其删除。这很可能造成内存泄漏。ThreadLocalMapHandler](值 org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@6d1576d7])和类型为 [java.lang.ref.SoftReference] 的值(值 [java.lang.ref.SoftReference@1c2d5534])但未能当 Web 应用程序停止时将其删除。这很可能造成内存泄漏。

4

2 回答 2

0

如果您执行 cf-update 或删除应用程序并重新运行 cf-push,它会询问您是否要使用现有的 MySQL 和 Mongo 服务。如果这样做没有任何数据丢失 - 只是在重新运行 cf-push 之前不要将服务与应用程序一起删除。

确保您使用的是“grails prod cf-push”,因为这将使用生产配置 - 如果您运行“grails cf-push”,则会显示警告。

根本原因是来自 HttpClient 库的 CNFE。看看你是否可以让它在本地工作,它应该在 Cloud Foundry 上正常工作,因为你只是在推送一个战争文件。

于 2012-05-18T19:34:53.047 回答
0

我发现了问题。我添加了一个使用第三方包中的外部 jar 的服务。第三方包附带 2 个 jars:一个有依赖项,一个没有依赖项。我将第 3 方 zip 解压缩到我的类路径中,但在我的 lib 目录中只包含了一个没有依赖项的压缩包。当我切换到使用带有依赖项的 jar 时,应用程序已部署。

以下事情使这个简单的问题难以解决:

  1. 错误日志只是说明“grailsApplication”存在问题并且找不到类
  2. 该应用程序使用 run-app 在我的工作站上运行,
  3. 该应用程序无法使用 run-war 在我的工作站上运行(无论是否提供了正确的 jar),
  4. 缺乏睡眠!

进入下一期!

于 2012-05-21T16:51:35.877 回答