Ant:exec可执行文件:错误代码99



我们使用Ant在Linux上构建应用程序,编译很好,在websphere(deploy-build.xml)上部署期间,我们使用以下代码

<exec executable="${shell.cmd}" failonerror="true">
            <arg line="${wsadmin.cmd} -conntype ${wsadmin.conntype} -profileName ${was.profile} ${security.options} -lang jython -f ${scripts.dir}/app-server/jy/install-app.jy ${archive.location}"/>
        </exec>

        <echo message="${app.name} (${archive.location} deployed." />

从日志中我们可以看到install-app.jy的执行是成功的。但我们仍然面临以下错误:

BUILD FAILED
/home/EBbuild/env-build/b4b/env-build.xml:50: The following error occurred while executing this line:
/home/EBbuild/env-build/deploy-build.xml:185: exec returned: 99
        at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:508)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:418)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
        at java.lang.reflect.Method.invoke(Method.java:613)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:357)
        at org.apache.tools.ant.Target.performTasks(Target.java:385)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
        at org.apache.tools.ant.Main.runBuild(Main.java:758)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Caused by: /home/EBbuild/env-build/deploy-build.xml:185: exec returned: 99
        at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:636)
        at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:662)
        at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:487)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
        at java.lang.reflect.Method.invoke(Method.java:613)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:357)
        at org.apache.tools.ant.Target.performTasks(Target.java:385)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
        at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)

在上面的错误消息行185是粘贴在上面的exec代码

我们正在使用bash-shell(linux)

RC=99源自Jython脚本,请查看源代码
使用ant -d env-build.xml(正如David已经提到的)或:

<echoxml>
<exec executable="${shell.cmd}" failonerror="true">
 <arg line="${wsadmin.cmd} -conntype ${wsadmin.conntype} -profileName ${was.profile} ${security.options} -lang jython -f ${scripts.dir}/app-server/jy/install-app.jy ${archive.location}"/>
</exec>
</echoxml>

查看属性是如何解析的/Jython脚本是如何实际执行的
然后在bash中独立启动Jython脚本(正如David已经提到的),以便进行进一步的调查
不知道Jython,但也许它有一个命令行参数来增加它的噪音级别!?

这是您作为${shell.cmd}执行的Windows cmd.exe吗?

如果是这样,您可能需要将/c作为第一个参数添加到命令行中。

您可能还想尝试使用ant -d(捕获输出,它会产生相当多的输出)来向您展示正在发生的更多细节。

这将显示正在执行的实际命令行,并可能帮助您查找错误。至少您可以直接从命令行运行commission。

99的退出代码没有特殊含义。可能是您的命令正在执行,遇到问题并返回99的退出代码。

如果没有ant -d的信息,现在真的很难说。

相关内容

  • 没有找到相关文章

最新更新