$ 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中:
<!--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>
编辑:现在它无法部署因为应用程序已存在于路径/ solr
取消部署:[取消部署]确定 - 取消部署 应用程序在上下文路径/ solr
部署:[部署]失败 - 应用程序 已存在于path / solr
建立失败 /Users/simpatico/SOLR_HOME/build.xml:532: 失败 - 应用程序已存在于 path / solr
答案 0 :(得分:3)
如果您查看Manager App的文档页面,您会发现主要区别在于脚本的网址。该示例使用(请注意/text
部分):
<property name="url" value="http://localhost:8080/manager/text"/>
在* nix环境中,您必须检查用户运行服务器的用户,以及该用户是否具有更改您的Web目录下的文件的正确权限。
答案 1 :(得分: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”任务将检查webapps目录中是否存在给定的war文件,如果是,它将执行实际的取消部署。