2012-03-13 75 views
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造成的錯誤)在路徑中的斜線符號?

非常感謝)

+0

這可能是一個愚蠢的問題,但你確定http:// localhost:8081/manager/text指向了manager servlet嗎?是不是隻是http:// localhost:8081/manager? – oers 2012-03-14 08:06:45

+0

是的,對於Ant任務url必須是「/ manager/text」。 「/ manager /」用於GUI訪問。 – Tloo 2012-03-15 12:23:12

回答

1

貌似所有的設置都OK:

  • 我刪除Tomcat的文件夾
  • 解壓新副本
  • 應用的設置

和一切工作現在。

我不好,不要早點檢查一下。

相關問題