2011-05-04 91 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。

相关问题