2011-05-04 93 views
4
$ ant deploy 
Buildfile: /Users/simpatico/SOLR_HOME/build.xml 

deploy: 

BUILD FAILED 
/Users/simpatico/SOLR_HOME/build.xml:531: java.io.IOException: Server returned HTTP response code: 403 for URL: http://localhost:8080/manager/deploy?path=%2Fsolr 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436) 
    at org.apache.catalina.ant.AbstractCatalinaTask.execute(AbstractCatalinaTask.java:228) 

Total time: 2 seconds 

在build.xml文件:如何使用Ant的DeployTask將Web應用程序部署到Tomcat?

<!--http://tomcat.apache.org/tomcat-5.5-doc/manager-howto.html#Executing_Manager_Commands_With_Ant--> 
    <!-- Configure properties to access the Manager application --> 
    <property name="url"  value="http://localhost:8080/manager"/> 
    <property name="username" value="admin"/> 
    <property name="password" value="admin"/> 

    <!-- Configure the custom Ant tasks for the Manager application --> 
    <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/> 

<!-- Configure the context path for this application --> 
    <property name="path"  value="solr"/> 

    <target name="deploy" description="Install web application" 
      > 
    <deploy url="${url}" username="${username}" password="${password}" 
      path="${path}" war="file:${dist}/solr.war"/> 
    </target> 

兩者/ Solr的和Solr的路徑不工作。

<tomcat-users> 
    <role rolename="manager-gui"/> 
    <user password="admin" roles="manager-gui,manager-script,admin" username="admin"/> 
</tomcat-users> 

編輯:現在無法部署becauase應用程序已經在路徑上存在/ Solr的

取消部署:取消部署] OK - 在上下文路徑未部署 應用/ Solr的

部署: [部署]失敗 - 應用程序 已存在路徑/ solr

BUILD FAILED /Users/simpatico/SOLR_HOME/build.xml:532: FAIL - 應用在 路徑/ Solr的

+0

用戶admin/admin是否在tomcat-users.xml中配置了正確的角色來訪問管理界面? – csupnig 2011-05-04 08:33:32

+0

@csupnig - 參見編輯 – simpatico 2011-05-04 08:44:39

+0

@simpatico:403意思是「禁止」,你確定你提供了正確的憑據嗎?順便說一句,使用什麼版本的Tomcat(是5.5)? – 2011-05-04 08:51:11

回答

3

已經存在,如果檢查出的的文檔頁面,你可以看到主要的區別是腳本的url。該示例使用(介意/text部分):

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

在* nix的環境中,你必須檢查用戶運行該服務器,如果該用戶具有正確的權限,以你的web目錄下修改文件。

+0

@vbence - 你釘住了它(我正在查看谷歌給出的5.5)。但現在它不會部署,因爲應用程序已經部署,如Q編輯中所示。 – simpatico 2011-05-04 09:11:43

+0

@simpatico只需從文檔中複製粘貼** undeploy **任務即可。 – vbence 2011-05-04 09:19:08

+0

@vbence - 這就是我所做的,並修改部署取決於取消部署 – simpatico 2011-05-04 09:22:10

0
<target name="tomcatdeploy" description="Install web application" > 
    <deploy_tomcat url="${admin.url}" username="${admin.name}" password="${admin.password}" path="/${webapp}" war="file:${dropoff.warfile.dir}/${webapp}.war"/> 
</target> 

<target name="check-context"> 
    <available file="${app.base.dir}/${webapp}.war" property="context.present"/> 
</target> 

<target name="undeploy" depends="check-context" if="context.present" description="Remove web application" > 
    <undeploy_tomcat url="${admin.url}" username="${admin.name}" password="${admin.password}" path="/${webapp}"/> 
</target> 

首先調用「undeploy」然後「tomcatdeploy」ant任務。您必須提供$ {pamram}值。 「undeploy」任務將檢查給定的war文件是否存在於webapps目錄中,如果是這樣的話,它將實際執行un-deployment。

相關問題