如何使用Ant';部署任务将Web应用程序部署到Tomcat?

如何使用Ant';部署任务将Web应用程序部署到Tomcat?,tomcat,rest,deployment,ant,manager-app,Tomcat,Rest,Deployment,Ant,Manager App,在build.xml中: $ 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

在build.xml中:

$ 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

/solr和solr路径都不起作用

<!--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上的应用程序

部署:[部署]失败-应用程序 路径/solr中已存在

构建失败 /Users/simpatico/SOLR_HOME/build.xml:532: 失败-应用程序已存在于 路径/解决方案


如果您查看的文档页面,您可以看到脚本的主要区别是url。示例使用(注意
/text
部分):


在*nix环境中,您必须检查运行服务器的用户,以及该用户是否具有更改web目录下文件的正确权限。


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

首先调用“undeploy”,然后调用“tomcatdeploy”ant任务。您必须根据需要提供${pamram}值。“取消部署”任务将检查webapps目录中是否存在给定的war文件,如果存在,它将执行实际的取消部署

用户admin/admin是否在tomcat-users.xml中配置了正确的角色以访问管理界面?@simpatico:403表示“禁止”,您确定提供了正确的凭据吗?顺便问一下,使用的是什么版本的Tomcat(是5.5版)?@barti_ddu-Tomcat 7。我已经在q(admin/admin)@simpatico:afair中提供了双方的凭据,因为tc7部署url看起来像
http://host:port/manager/text/deploy?path=/foo
由于某些原因,因此不会显示我添加到问题中的部分,该部分显示了修改后的部署和取消部署targets@vbence-你搞定了(我在看google提供的5.5版本)。但现在它没有部署,因为应用程序已经部署,如Q edit中所示。@simpatico只需从文档中复制粘贴取消部署任务。@vbence-我就是这么做的,并修改了部署以依赖它undeploy@simpatico我猜您是手工“部署”应用程序的(不是通过Manager应用程序)。尝试手动删除它,然后通过ant进行初始部署。
ant
。之后,您必须能够取消部署。@vbence-不,手动取消部署。。然后ant deploy可以工作(因为没有什么可以取消部署),但ant deploy再次将给出错误
<property name="url"      value="http://localhost:8080/manager/text"/>
<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>