I’m following spring tutorial . In that it control tomcat with ant tasks. Earlier I face few problems because of tomcat 7 manager app is different from previous versions. But I was able to fix them. Now ant listtask is working fine. But others are not. For an example ant starttask returns this error.
start-webapp:
BUILD FAILED
C:\Users\rsenarath\workspace\myspringapp\build.xml:108: java.io.IOException: Server returned HTTP response code: 401 for URL: http://localhost:8080/manager/text/start?path=%2Fmyspringapp
But when I copy the url(http://localhost:8080/manager/text/start?path=%2Fmyspringapp) on the browser it asks for username password and it replies as without a problem as follows.
OK - Started application at context path /myspringapp
Can some one help me with this. My build.properties is as below
appserver.name=tomcat
appserver.home=C:/Users/rsenarath/apache-tomcat-7.0.34
appserver.lib=${appserver.home}/lib
appserver.bin=${appserver.home}/bin
deploy.path=${appserver.home}/webapps
tomcat.manager.url=http://localhost:8080/manager/text
tomcat.manager.username=tomcat
tomcat.manager.password=s3cret
and ans tasks are as below
<path id="catalina-ant-classpath">
<fileset dir="${appserver.lib}">
<include name="catalina-ant.jar"/>
<include name="tomcat-coyote.jar"/>
<include name="tomcat-util.jar"/>
</fileset>
<fileset dir="${appserver.home}/bin">
<include name="tomcat-juli.jar"/>
</fileset>
</path>
<taskdef name="catalina-deploy" classname="org.apache.catalina.ant.DeployTask" classpathref="catalina-ant-classpath"/>
<taskdef name="catalina-list" classname="org.apache.catalina.ant.ListTask" classpathref="catalina-ant-classpath"/>
<taskdef name="catalina-reload" classname="org.apache.catalina.ant.ReloadTask" classpathref="catalina-ant-classpath"/>
<taskdef name="catalina-resources" classname="org.apache.catalina.ant.ResourcesTask" classpathref="catalina-ant-classpath"/>
<taskdef name="catalina-start" classname="org.apache.catalina.ant.StartTask" classpathref="catalina-ant-classpath"/>
<taskdef name="catalina-stop" classname="org.apache.catalina.ant.StopTask" classpathref="catalina-ant-classpath"/>
<taskdef name="catalina-undeploy" classname="org.apache.catalina.ant.UndeployTask" classpathref="catalina-ant-classpath"/>
<target name = "stop-webapp">
<catalina-stop url="${tomcat.manager.url}"
username="${tomcat.username}"
password="${tomcat.password}"
path="/${name}"
failonerror="false"/>
</target>
<target name = "start-webapp">
<catalina-start url="${tomcat.manager.url}"
username="${tomcat.username}"
password="${tomcat.password}"
path="/${name}"/>
</target>
<target name="list-webapp" description="List Tomcat applications">
<catalina-list url="${tomcat.manager.url}"
username="${tomcat.manager.username}"
password="${tomcat.manager.password}"/>
</target>
In your start-webapp and stop-webapp targets you use these variables for user/pass:
But in your config data you set these:
The username and password are therefore probably not set when you run the start-webapp target, hence the 401. Perhaps you could update the variable names in the start and stop targets to match the config.