i am learning tomcat basics and while i tried to deploy my web-application on tomcat i am getting the following error
[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy (default-cli) on project struts2-demoapp: Cannot invoke Tomcat manager: Server returned HTTP response code: 401 for URL: http://localhost:8080/manager/html/deploy?path=%2FmkyWebApp&war= -> [Help 1]
[ERROR]
as per this it seems war file location is not being passed to the tomcat manager.i have the following entries in my tomcat-user.xml
tomcat-users>
<user name="admin" password="admin" roles="admin,manager" /><!--
NOTE: The sample user and role entries below are wrapped in a comment
and thus are ignored when reading this file. Do not forget to remove
<!.. ..> that surrounds them.
-->
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>
here are the details of the pom.xml
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<packagingExcludes>WEB-INF/web.xml</packagingExcludes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<warFile>${project.build.directory}/${project.build.finalName}.war</warFile>
<url>http://localhost:8080/manager/html</url>
<server>myserver</server>
<path>/mkyWebApp</path>
</configuration>
</plugin>
</plugins>
</build>
in my setting.xml there are the entries
<server>
<id>Tomcat6.x</id>
<username>admin</username>
<password>admin</password>
</server>
i am not sure what exactly is going wrong here.any help in this regard will be helpful.
Change
<server>
<id>Tomcat6.x</id>
<username>admin</username>
<password>admin</password>
</server>
to
<server>
<id>myserver</id>
<username>admin</username>
<password>admin</password>
</server>
If you are using tomcat 7 use
<url>http://localhost:8080/manager/html</url>
If tomcat 6
<url>http://localhost:8080/manager</url>
start tomcat run tomcat7:deploy or tomcat6:deploy
You need to map the credentials from your settings.xml to the server configuration at your pom.xml.
In your case, this is done but setting the <id>
element of your server, to match the server's host name from the pom.xml.
Since you are pointing localhost
, the id must be also localhost
.
When you change the hostname, you must also update settings.xml.
It's in the plugin configuration docs: the server/id
tag in Maven settings must match the configuration/server
value in your POM file, i.e. put <server>Tomcat6.x</server>
in POM file.
There are some other minor issues with your tomcat-maven-plugin
entry in the POM file:
<version>1.1</version>
tag,/html
suffix in the Tomcat manager URL is unnecessary (cf. the default value for <url>
tag).If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With