开发者

Why does Eclipse report BUILD FAILED when Ant Tomcat task seems to be successful?

When running Ant targets with tomcat manager commands they appear to be successful, but report BUILD FAILED.

Here are the relevant parts of my build.xml:

<property name="path"     value="/MyApp"/>

<property name="manager-url" value="http://localhost:8080/manager/html"/>
<property name="username" value="admin"/>
<property name="password" value=""/>

<taskdef name="start"     classname="org.apache.catalina.ant.StartTask"/>
<taskdef name="stop"      classname="org.apache.catalina.ant.StopTask"/>
<taskdef name="undeploy"  classname="org.apache.catalina.ant.UndeployTask"/>

<target name="start" description="Start web application">
    <start url="${manager-url}" username="${username}" password="${password}" path="${path}" output="${tomcat-home}/webapps/start.html"/>
</target>

<target name="stop" description="Stop web application">
    <stop url="${manager-url}" username="${username}" password="${password}" path="${path}" output="${tomcat-home}/webapps/stop.html"/>
</target>

<target name="undeploy" description="Start web application">
    <undeploy url="${manager-url}" username="${username}" password="${password}" path="${path}" output="${tomcat-home}/webapps/undeploy.html"/>
</target>

When I run these targets (start, stop, undeploy) from eclipse I get output like the following:

Buildfile: C:\eclipse_3.5\eclipse\workspace\MyApp\build.xml
Trying to override old definition of datatype resources
undeploy:

BUILD FAILE开发者_StackOverflow中文版D
C:\eclipse_3.5\eclipse\workspace\MyApp\build.xml:85: <html>

Total time: 20 seconds

the output redirected by the targets are html files that indicate that the Tomcat manager command was successful, and when I check the manager it seems like it was.


I had the same problem and discovered the answer here

The problem is the URL that you're using for the undeploy task; you need to remove the html.

<property name="manager-url" value="http://localhost:8080/manager/html"/>

should be:

<property name="manager-url" value="http://localhost:8080/manager"/>


The error you see is probably unrelated to the undeploy invocation.

At line 85 you have a <html> tag which ant dislikes and cause the failure.


Here's the answer. Do NOT do what it says in the docs! The docs for the auto generated build.xml say to copy the catalina-ant.jar to the ant lib dir. THAT IS WHAT IS CAUSING THE PROBLEM! Remove it and whola, it will work.


You need to change your URL to

<property name="manager-url" value="http://localhost:8080/manager/text"/>

You may also need to add a new user to Tomcat's conf/tomcat_users.xml, because it's recommended to keep manager-gui (HTML access) separate from manager-script (text access):

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="browser" password="xyzzy" roles="manager-gui"/>
<user username="ant" password="plugh" roles="manager-script"/>

See also https://issues.apache.org/bugzilla/show_bug.cgi?id=50706

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜