Ant+Weblogic - CreateProcess 错误=206
Posted
技术标签:
【中文标题】Ant+Weblogic - CreateProcess 错误=206【英文标题】:Ant+Weblogic - CreateProcess error=206 【发布时间】:2016-05-27 19:37:21 【问题描述】:我正在尝试使用 ant 将 ear 部署到 weblogic 服务器。
我从以下开始:
<target name="deploy">
<taskdef name="wldeploy" classname="weblogic.ant.taskdefs.management.WLDeploy">
<wldeploy action="deploy" name="projName" source="proj.ear" user="user" password="pass" adminurl="localhost:8050" targets="mytarget"/>
</target>
但是,这给了我以下错误:
taskdef 类 weblogic.ant.taskdefs.management.WLDeploy 找不到 使用类加载器 AntClassLoader[]
为了解决这个问题,我修改了我的 taskdef 以包含 weblogic jar 的路径。但是,现在我收到此错误:
[wldeploy] weblogic.Deployer -debug -verbose -noexit -name TPD -source C:\Program Files (x86)\Jenkins\jobs\PROJ\workspace\target\dist\proj.ear -targets mytarget -adminurl localhost :8050 -user 用户 -password pass -deploy
[wldeploy] C:\Program Files (x86)\Jenkins\jobs\PROJ\workspace\build.xml:574: java.io.IOException: 无法运行程序“D:\jdk1.7\jre\bin\ java.exe": CreateProcess error=206, 文件名或扩展名太长
(以上是由托管在 Windows 机器上的 Jenkins 生成的)。
我感觉这是由于 weblogic jar 创建了一个对于 Windows 命令提示符来说太大的类路径,但我对 Ant 的缺乏经验让我怀疑。我已经研究过使用 manifestclasspath,但是缺乏经验又让我无法有效地实现它。
对此有什么好的解决方法?
【问题讨论】:
【参考方案1】:DOS 命令行在这方面非常有限。一种解决方法是创建一个“路径 jar”。这是一个仅包含 Manifest.mf 文件的 jar,其 Class-Path 指定了长长的 jar 列表的磁盘路径等。现在只需将此路径 jar 添加到命令行类路径。这通常比将实际资源打包在一起更方便。
我记得,磁盘路径可以相对于路径 jar 本身。所以 Manifest.mf 可能看起来像这样:
Class-Path: this.jar that.jar ../lib/other.jar
如果您的路径 jar 主要包含基础资源,那么它不会经常更改,但您可能仍希望在构建的某个位置生成它。例如:
<jar destfile="pathing.jar"> <manifest> <attribute name="Class-Path" value="this.jar that.jar ../lib/other.jar"/> </manifest> </jar>
【讨论】:
完美运行,正是我想要的!非常感谢!以上是关于Ant+Weblogic - CreateProcess 错误=206的主要内容,如果未能解决你的问题,请参考以下文章
Weblogic Ant JWSC 任务生成 webservice war 文件
Weblogic Ant JWSC任务生成webservice war文件
在 Weblogic 10.3 上使用 ant 部署 WAR 时出现“Java 堆空间”错误