1
我在運行tomcat ant任務時遇到問題。 我發現了幾個類似的情況,但沒有人幫助:Tomcat ant任務執行錯誤
ant install to deploy Tomcat webapp failing with permission problem
Why is Ant returning a 403 on deploy?
Ant Tomcat 7 Reload FileNotFoundException
版本:
- OS:的Windows 7 64位專業版
- Java版本: 1.6.0_25
- 螞蟻版本: 1.8.3
- Tomcat的版本: 7.0.011
我的tomcat-users.xml中:
<tomcat-users><role rolename="manager-script"/>
<user username="script" password="script" roles="manager-script"/>
<role rolename="manager-gui"/>
<user username="manager" password="manager!" roles="manager-gui"/>
</tomcat-users>
Ant腳本的一部分:
<property name="app.name" value="london"/>
<property name="manager.url" value="http://localhost:8081/manager/text"/>
<property name="manager.user" value="script"/>
<property name="manager.password" value="script"/>
<property name="update.filename" value="update.war"/>
<taskdef name="tomcatStart" classname="org.apache.catalina.ant.StartTask"/>
<taskdef name="tomcatStop" classname="org.apache.catalina.ant.StopTask"/>
<taskdef name="tomcatDeploy" classname="org.apache.catalina.ant.DeployTask"/>
<target name="main">
<tstamp/>
<tomcatStop
url="${manager.url}"
username="${manager.user}"
password="${manager.password}"
path="/${app.name}"
/>
<tomcatDeploy
url="${manager.url}"
username="${manager.user}"
password="${manager.password}"
path="/${app.name}"
war="file:${update.filename}"
/>
</target>
控制檯輸出(StopTask):
BUILD FAILED
C:\Users\username\ant\build.xml:34: java.io.FileNotFoundException:
http://localhost:8081/manager/text/stop?path=%2Flondon
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1434)
at org.apache.catalina.ant.AbstractCatalinaTask.execute(AbstractCatalinaTask.java:228)
at org.apache.catalina.ant.AbstractCatalinaTask.execute(AbstractCatalinaTask.java:149)
at org.apache.catalina.ant.StopTask.execute(StopTask.java:73)
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:597)
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)
Total time: 0 seconds
控制檯輸出(DeployTask):
BUILD FAILED
C:\Users\username\ant\build.xml:35: java.io.IOException: Server returned HTTP response code: 403 f
or URL: http://localhost:8081/manager/text/deploy?path=%2Flondon
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436)
at org.apache.catalina.ant.AbstractCatalinaTask.execute(AbstractCatalinaTask.java:228)
at org.apache.catalina.ant.DeployTask.execute(DeployTask.java:211)
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:597)
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)
Total time: 0 seconds
奇怪的是,我得到了它的工作好幾次,但現在它不再工作。
另一個奇怪的事情是,
StartTask和StopTask產生FileNotFoundException異常,但
DeployTask產生java.io.IOException異常:服務器返回的HTTP響應代碼:403 ...
是否有可能通過編碼(%2F造成的錯誤)在路徑中的斜線符號?
非常感謝)
這可能是一個愚蠢的問題,但你確定http:// localhost:8081/manager/text指向了manager servlet嗎?是不是隻是http:// localhost:8081/manager? – oers 2012-03-14 08:06:45
是的,對於Ant任務url必須是「/ manager/text」。 「/ manager /」用於GUI訪問。 – Tloo 2012-03-15 12:23:12