【问题标题】:EOFException when executing remoteant task from ant-contrib从 ant-contrib 执行远程任务时出现 EOFException
【发布时间】:2012-03-01 14:39:11
【问题描述】:

我正在尝试使用 ant-contrib 远程启动 ant 任务。出于测试目的,我使用以下文件定义了一个服务器和一个调用者。

<?xml version="1.0" encoding="ISO-8859-1"?> 
<project name="RMI" basedir="." default="start.ant.server"> 
      <target name="start.ant.server"> 
                <taskdef resource="net/sf/antcontrib/antcontrib.properties"/> 
                <antserver port="12345" /> 
        </target> 
        <target name="remoteant"> 
                <echo message="hi"/>
        </target> 
</project> 

<?xml version="1.0" encoding="ISO-8859-1"?> 
<project name="RMI" basedir="." default="call.ant.server"> 
        <target name="call.ant.server">
                <taskdef resource="net/sf/antcontrib/antcontrib.properties"/> 
                <remoteant machine="localhost" port="12345"> 
            <runtarget target="remoteant"/>
        </remoteant>    
        </target> 
</project> 

当我启动服务器然后运行远程调用时,一切似乎工作正常,但调用者抛出异常:

    at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2498)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1273)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
    at net.sf.antcontrib.antserver.client.Client.sendCommand(Client.java:233)
    at net.sf.antcontrib.antserver.client.ClientTask.execute(ClientTask.java:144)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    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:392)
    at org.apache.tools.ant.Target.performTasks(Target.java:413)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
    at org.apache.tools.ant.Main.runBuild(Main.java:811)
    at org.apache.tools.ant.Main.startAnt(Main.java:217)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

有没有人发现类似的东西,有什么办法可以摆脱这个异常?

谢谢,

【问题讨论】:

  • 似乎是版本的问题。 Ant 1.8.1 和 ant-contrib 1.0.3b。 sourceforge.net/tracker/… 给任何想要跟踪此错误状态的人。

标签: ant ant-contrib


【解决方案1】:

这是 ant-contrib 已知问题,但您可以使用

忽略它
<trycatch>
       <try>
             <remoteant machine="localhost" port="12345"> 
             <runtarget target="remoteant"/>
        </try>
        <catch>
            <echo>Ignoring known issue: EOF I.O. exception...</echo>
        </catch>
</trycatch>

【讨论】:

  • 但这也会发现远程主机的问题,您可能想要处理它,例如远程服务器未处于活动状态。不会吗?
猜你喜欢
  • 1970-01-01
  • 2011-07-04
  • 2013-09-22
  • 1970-01-01
  • 1970-01-01
  • 2011-04-23
  • 2014-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多