在 Weblogic 10.3 上使用 ant 部署 WAR 时出现“Java 堆空间”错误
Posted
技术标签:
【中文标题】在 Weblogic 10.3 上使用 ant 部署 WAR 时出现“Java 堆空间”错误【英文标题】:"Java heap space" error when deploying WAR with ant on Weblogic 10.3 【发布时间】:2011-01-04 17:12:52 【问题描述】:通过调用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脚本部署到另一台服务器:成功到另一台服务器,所以不是脚本的bug
我希望有人以前看过这个或者有其他尝试的想法,我已经看了好几个小时了!
部署战争: [echo] 正在部署应用程序... [echo] 部署应用程序 [java] weblogic.Deployer 使用选项调用:-adminurl t3://corpitdev50ddh11:7001 \ -用户名 weblogic -name 401k_clt-antdeploy -stage \ -上传/opt/appl/hrsapps/401k/client/dist/app/401k_clt.war \ -targets AdminServer -verbose -deploy [java]【问题讨论】:
【参考方案1】:我们遇到了类似的问题 - 在我们的案例中,我们将 SDK 从 1.5 更改为 Java 1.6,并且 WLDeploy 任务中的某些内容导致了无限循环,这意味着无论我们使用多少内存,我们总是会收到 Java 堆空间问题.
【讨论】:
【参考方案2】:您能否确认您尝试在Ant 级别 更改内存设置(例如通过设置ANT_OPTS
环境变量,类似于ANT_OPTS=-Xmx1024m
)。
对我来说,即使脚本与另一个 weblogic 实例一起工作(顺便说一句,它真的是同一个实例吗?相同的版本?等等),这是你的 Ant 进程内存不足,而不是 WebLogic(这解释了为什么重新启动 WebLogic不会改变任何东西以及为什么通过管理控制台进行部署有效)。
【讨论】:
内存选择是用于服务器的,而不是用于 ant,现在重试。不同的服务器是相同的 WL10.3 版本(相同的安装 EXE)和 WinXP,但可能成千上万的 WL 配置选项中的一些是不同的。感谢您的想法!【参考方案3】:运行 weblogic.deployer 的 JVM 似乎内存不足(而不是服务器本身),我不确定您更改了哪些堆参数。
尝试修改ant脚本,为启动WebLogic部署器的任务分配更多的堆空间:
<java ... fork="true" maxmemory="512m" (or more if required)>
...
</java>
【讨论】:
内存选择是给服务器的,不是给蚂蚁的,现在重试,谢谢你的想法! 这成功了,maxmemory="256m" 成功了。为什么 Java 仍然坚持使用 64m,因为默认值超出了我的范围......再次感谢!以上是关于在 Weblogic 10.3 上使用 ant 部署 WAR 时出现“Java 堆空间”错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 oracle weblogic server 10.3 (java) 为 web 服务设置超时
Ant+Weblogic - CreateProcess 错误=206
weblogic10.3 启动报错 Unrecognized option: -jrockit Error: Could not create the Java Virtual Machine(示例代