&引用;Java堆空间“;在Weblogic 10.3上使用ant部署WAR时出错

&引用;Java堆空间“;在Weblogic 10.3上使用ant部署WAR时出错,java,weblogic,heap,weblogic-10.x,Java,Weblogic,Heap,Weblogic 10.x,当通过调用weblogic.Deployer的任务从ant构建部署应用程序WAR文件时,我遇到了这个错误。这是在Windows XP上,服务器未处于生产模式,服务器上仅安装了两个其他WAR,一个是静态内容(web.xml+png/css/javascript文件),PC上未安装其他weblogic服务器。服务器CPU从未超过25%。JRockit JVM 1.6.0_05-b13。JSP文件是用weblogic.appc预编译的,因此作为servlet(.class文件)存储在war中。此外,W

当通过调用
weblogic.Deployer
的任务从ant构建部署应用程序WAR文件时,我遇到了这个错误。这是在Windows XP上,服务器未处于生产模式,服务器上仅安装了两个其他WAR,一个是静态内容(web.xml+png/css/javascript文件),PC上未安装其他weblogic服务器。服务器CPU从未超过25%。JRockit JVM 1.6.0_05-b13。JSP文件是用weblogic.appc预编译的,因此作为servlet(.class文件)存储在war中。此外,WAR文件大约有2000万个,包括jar库、大约500个类和大约200个已编译的JSP页面

尝试的解决方案:

  • 多次重新启动weblogic服务器:无效,仍然失败
  • 服务器PC有2GB ram,因此将Weblogic服务器的内存参数增加到
    -Xms256m-Xmx512m-XX:PermSize=48m-XX:MaxPermSize=256m
    :无效,仍然失败
  • 通过Weblogic控制台部署:WAR部署很好,所以在WAR设置中没有bug
  • 使用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 部署战争: [echo]正在部署应用程序。。。 [echo]部署应用程序 [java]weblogic.Deployer通过以下选项调用:-adminurl t3://corpitdev50ddh11:7001\ -用户名weblogic-名称401k_clt-antdeploy-阶段\ -上传/opt/appl/hrsapps/401k/client/dist/app/401k_clt.war\ -目标AdminServer-详细-部署 [爪哇]\ [java]java堆空间 构建失败 /opt/appl/hrsapps/401k/build macros.xml:601:执行此行时发生以下错误: /opt/appl/hrsapps/401k/build macros.xml:557:Java返回:1
看起来运行weblogic.deployer的JVM内存不足(不是服务器本身),我不确定您更改了哪些堆参数

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

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

...

您是否可以确认您试图在Ant级别更改内存设置(例如,通过设置
Ant\u OPTS
环境变量,类似于
Ant\u OPTS=-Xmx1024m


对我来说,即使脚本与另一个weblogic实例一起工作(是否确实是同一个实例?btw?同一版本?等等),内存不足的是您的Ant进程,而不是weblogic(这解释了为什么重新启动weblogic不会改变任何事情,以及为什么通过管理控制台进行部署是可行的)

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

内存选项是针对服务器的,而不是针对ant的,我们现在正在尝试。不同的服务器是相同的WL10.3版本(相同的安装EXE)和WinXP,但可能有数千个WL配置选项中的一些是不同的。谢谢你的想法!内存选项是针对服务器的,不是针对ant的,我们现在正在尝试,感谢您的想法!这就成功了,maxmemory=“256m”成功了。我无法理解为什么Java仍然坚持64m作为默认值。。。。再次感谢!汤姆,我可以知道你是怎么解决的吗?