在Weblogic 10.3上使用ant部署WAR时出现“Java堆空间”错误

时间:2010-01-13 16:09:02

标签: java weblogic heap weblogic-10.x

通过调用weblogic.Deployer的任务从我的ant构建部署应用程序WAR文件时出现此错误。这是在Windows XP上,服务器不在生产模式,服务器上只安装了2个其他WAR,一个只是静态内容(web.xml + png / css / javascript文件),PC上没有安装其他weblogic服务器。服务器CPU永远不会超过25%。 JRockit JVM 1.6.0_05-b13。 JSP文件使用weblogic.appc进行预编译,因此作为servlet(.class文件)存储在war中。此外,WAR文件大约为20M,包括jar库,大约500个类,以及~200​​个编译的JSP页面。

尝试解决方案:

  • 多次重新启动weblogic服务器:无效,仍然失败
  • 服务器PC有2GB内存,因此将Weblogic服务器的内存参数增加到-Xms256m -Xmx512m -XX:PermSize=48m -XX:MaxPermSize=256m:无效,仍然失败
  • 通过Weblogic控制台部署:WAR部署正常,因此不是设置战争的错误
  • 使用ant脚本部署到另一台服务器:成功到另一台服务器,所以这不是脚本中的错误

我希望有人之前已经看过这个或想过别的东西可以试试,我已经看了好几个小时了!

deploy-war:
     [echo] Deploying application...
     [echo] Deploying application
     [java] weblogic.Deployer invoked with options:  -adminurl t3://corpitdev50ddh11:7001 \
               -username weblogic -name 401k_clt-antdeploy -stage \
               -upload /opt/appl/hrsapps/401k/client/dist/app/401k_clt.war \
               -targets AdminServer -verbose -deploy
     [java] <Jan 13, 2010 10:41:22 AM EST> <Info> <J2EE Deployment SPI> <BEA-260121> \
               <Initiating deploy operation for application, 401k_clt-antdeploy \
               [archive: /opt/appl/hrsapps/401k/client/dist/app/401k_clt.war], to AdminServer .>
     [java] Java heap space

BUILD FAILED
/opt/appl/hrsapps/401k/build-macros.xml:601: The following error occurred while executing this line:
/opt/appl/hrsapps/401k/build-macros.xml:557: Java returned: 1

3 个答案:

答案 0 :(得分:6)

看起来运行weblogic.deployer的JVM内存不足(而不是服务器本身),而且我不确定你改变了哪些堆params。

尝试修改ant脚本,以便为启动WebLogic部署程序的任务分配更多堆空间:

<java ... fork="true" maxmemory="512m" (or more if required)>
    ...
</java>

答案 1 :(得分:3)

您是否可以确认您尝试更改 Ant级别的内存设置(例如,通过设置ANT_OPTS环境变量,类似于ANT_OPTS=-Xmx1024m)。

对我来说,即使脚本与另一个weblogic实例一起工作(它实际上是同一个实例btw?同一个版本?等),它是你的Ant进程耗尽内存,而不是WebLogic(这解释了为什么重启WebLogic不会改变任何内容以及为什么通过管理控制台进行部署工作)。

答案 2 :(得分:1)

我们遇到了类似的问题 - 在我们的例子中,我们已经将SDK从1.5更改为Java 1.6而WLDeploy任务中的某些内容导致了无限循环,这意味着无论我们多么高,我们总是会收到Java堆空间问题。