Error 404 while deploying to Tomcat with Tomcat7 MVN plugin - java

I'm trying to deploy my project to Tomcat using Tomcat MVN plugin but I get the following error:
Uploading: http://localhost:8080/manager/text/deploy?path=%2FSample
Uploaded: http://localhost:8080/manager/text/deploy?path=%2FSample (90810 KB at 62283.7 KB/sec)
[ERROR] Tomcat return http status error: 404, Reason Phrase: Not Found
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
The plugin configuration in the pom
<build>
<plugins>
.
.
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
.
.
.
I have no Tomcat users set in the pom because in my Tomcat configuration I don't have any users and need to kept it that way.
When I manually copy the war into the tomcat folder "webapps" it deploy with no issue.
I don't know what is missing... and I have try the followings with no result
Error while deploying to Tomcat: tomcatManager status code:404, ReasonPhrase:Not Found
tomcatManager status code:404, ReasonPhrase:Not Found

Ok after a lot of research I found a way to deploy my project with Tomcat7 Maven Plugin.
It's as simple as running the goal mvn tomcat7:run-war
The only downside is that it use it own embedded Tomcat server
I leave the documentation here

Related

IntelliJ : Deploy app on Tomcat. AUTHORIZATION issues

have been developing a java app being compiling and built with Maven.
Trying to deploy it on tomcat server.
to deploy I added the next plugin-section to pom.xml :
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<server>maven-tomcat-war-deployment-server</server>
<url>http://localhost:8080/manager/text</url>
<path>/rps</path>
</configuration>
</plugin>
and also had had before the section
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
and it is able to deploy my "testapp" onto tomcat server with
command line:
$ mvn install tomcat7:deploy
in this case everything will be ok
BUT from IntelliJ my tries are unsuccessful. I have the next failure:
[INFO] --- tomcat7-maven-plugin:2.0:deploy (default-cli) # testapp
--- [INFO] Deploying war to http://localhost:8080/rps Uploading: http://localhost:8080/manager/text/deploy?path=%2Frps Uploaded:
http://localhost:8080/manager/text/deploy?path=%2Frps (11 KB at 1053.5
KB/sec)
Uploading: http://localhost:8080/manager/text/deploy?path=%2Frps
Uploaded: http://localhost:8080/manager/text/deploy?path=%2Frps (11 KB
at 2107.0 KB/sec)
tomcatManager status code:401, ReasonPhrase: [INFO] [INFO] [INFO]
[INFO] 401 Unauthorized [INFO] <etc..> [INFO]
[INFO] 401 Unauthorized [INFO] [INFO]
**You are not authorized to view this page. If you have not changed [INFO] any configuration files, please examine the file [INFO]
conf/tomcat-users.xml in your installation. That [INFO]
file must contain the credentials to let you use this webapp. [INFO]
For example, to add the manager-gui role to a user named
[INFO] tomcat with a password of s3cret, add the
following to the [INFO] config file listed above.**
Everything is clear but have no idea where in IntelliJ I can assign admin-user name and password in order to get access to tomcat?
Obviously, I have admin-user-role credentials entries in maven/settings.xml :
<server>
<id>maven-tomcat-war-deployment-server</id>
<username>admin</username>
<password>admin</password>
</server>
and correspondingly in tomcat/conf/tomcat-users.xml have:
<tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0">
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin" roles="manager-script,manager-jmx,manager-gui"/>
PS To run it this way I changed run configuration to execute command like with it was
with command line: install tomcat7:deploy -f pom.xml
in case when I try to configure a new run-configuration based on TomCat Server there will happen much more serious and unpredictable problems which should as i think be described in a separate question.
Couldn't imagine it would be such a tremendous problem to deploy an existing app on tomcat)
There are on youtube a video from JetBrain how to do that but without any connection
to developing within Maven-framework concept.
TYA
Sergei

Not able to upload artifacts to Nexus from the same machine using mvn clean deploy, works fine from my local Windows 10 machine

Java 11
I have a very basic Spring Boot application that I would like to build and deploy the artifacts on a Nexus sever.
mvn clean deploy (from my local Win 10 machine - WORKS !!!)
mvn clean deploy (from Nexus machine - FAILS ????)
mvn clean deploy (from Jenkins - FAILS ????)
When I run mvn clean deploy command from my local Win 10 machine all the artifacts get deployed successfully on remote Nexus server and I can even see and browse them.
But when I clone the project and run mvn clean deploy on the very same machine where both Nexus and Jenkins (Ubuntu box) are installed it gives me Not authorized error.
I have already copied over BOTH settings.xml and settings-security.xml from my local Windows machine to Ubuntu (~/.m2) where Nexus is installed.
I have disabled the firewalls as well just to be sure that no ports are blocked.
I am confused how the artifacts are getting copied over from a remote machine but not from the same machine.
pom.xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<addResources>true</addResources>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.0.0-M1</version>
</plugin>
</plugins>
</build>
<distributionManagement>
<snapshotRepository>
<id>my-maven-snapshots</id>
<url>http://my-nexus-server/nexus/repository/maven-snapshots/</url>
</snapshotRepository>
<repository>
<id>my-maven-releases</id>
<url>http://my-nexus-server/nexus/repository/maven-releases/</url>
</repository>
</distributionManagement>
<scm>
<connection>scm:git:https://johndoe#bitbucket.org/johndoe/todo.git</connection>
<url>https://johndoe#bitbucket.org/johndoe/todo</url>
<developerConnection>scm:git:https://johndoe#bitbucket.org/johndoe/todo.git</developerConnection>
<tag>HEAD</tag>
</scm>
Error (Nexus is installed on this machine):
[INFO] --- maven-install-plugin:2.5.2:install (default-install) # todo ---
[INFO] Installing /home/admin/cloned-apps/todo/pom.xml to /home/admin/.m2/repository/com/example/todo/0.0.2-SNAPSHOT/todo-0.0.2-SNAPSHOT.pom
[INFO]
[INFO] --- maven-deploy-plugin:2.8.2:deploy (default-deploy) # todo ---
Downloading from my-maven-snapshots: http://my-nexus-server/nexus/repository/maven-snapshots/com/example/todo/0.0.2-SNAPSHOT/maven-metadata.xml
[WARNING] Could not transfer metadata com.example:todo:0.0.2-SNAPSHOT/maven-metadata.xml from/to my-maven-snapshots (http://my-nexus-server/nexus/repository/maven-snapshots/): Not authorized , ReasonPhrase:Unauthorized.
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for todo 0.0.2-SNAPSHOT:
[INFO]
[INFO] todo ............................................... FAILURE [ 4.622 s]
[INFO] todo-webapp ........................................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.973 s
[INFO] Finished at: 2020-04-16T02:39:48Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project todo: Failed to retrieve remote metadata com.example:todo:0.0.2-SNAPSHOT /maven-metadata.xml: Could not transfer metadata com.example:todo:0.0.2-SNAPSHOT/maven-metadata.xml from/to my-maven-snapshots (http://my-nexus-server/nexus/repository/maven-snapshots/ ): Not authorized , ReasonPhrase:Unauthorized. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
mvn clean deploy (from Nexus machine - FAILS ????)
Are you sure you're running mvn clean deploy from the same user under whose $HOME/.m2 directory you've copied the settings.xml and settings-security.xml files?
Also, did you try adding the password directly to settings.xml to rule out issues (if any) with settings-security.xml?
P.S: Avoid running mvn commands with sudo privilege.

Heroku unable to detect java 11

I am trying to deploy a java jar to heroku with heroku maven plugin.
I am using java 11 so I have added system.properties in the root folder(where pom.xml is present) and set java.runtime.version=11. However it doesn't seem to be working !
My plugin :
<plugin>
<groupId>com.heroku.sdk</groupId>
<artifactId>heroku-maven-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<includeTarget>false</includeTarget>
<includes>
<include>${project.build.directory}/${project.build.finalName}.jar</include>
</includes>
<processTypes>
<web>java $JAVA_OPTS -jar ${project.build.directory}/${project.build.finalName}.jar</web>
</processTypes>
</configuration>
</plugin>
When I do git push heroku master it starts build process using jdk 8.
remote: Building source:
remote:
remote: -----> Java app detected
remote: -----> Installing JDK 1.8... done
remote: -----> Installing Maven 3.6.2... done
remote: -----> Executing Maven
remote: $ mvn -DskipTests clean dependency:list install
Eventually build fails with error :
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project ImpactHub_bot: Fatal error compiling: invalid flag: --release ->
How do I set jdk verison to 11 ? I have also tried adding ${java.version} to configuration but it didn't help
That's exactly how you are specifying the Java version, see: https://devcenter.heroku.com/articles/java-support#specifying-a-java-version
You can specify a Java version by adding a file called
system.properties to your application.
Set a property java.runtime.version in the file:
java.runtime.version=11
I used it in my project as well and it is working.
Make sure your system.properties is saved as All Files. Furthermore it should be at the root folder of your git repo.
It might have a .txt ending. If that fails open a Support Ticket with Heroku.

Maven GAE Plugin - Unable to run gae:debug

I'm having trouble running the gae:debug goal of the Maven GAE Plugin. The error I'm receiving is below. Any ideas?
I'm running it with "mvn gae:debug".
[INFO] Packaging webapp
[INFO] Assembling webapp[test-gae] in [C:\development\test-gae\target\test-gae-0.0.1-SNAPSHOT]
[INFO] Processing war project
[INFO] Webapp assembled in[56 msecs]
[INFO] Building war: C:\development\test-gae\target\test-gae-0.0.1-SNAPSHOT.war
[INFO] [statemgmt:end-fork]
[INFO] Ending forked execution [fork id: -2101914270]
[INFO] [gae:debug]
Usage: <dev-appserver> [options] <war directory>
Options:
--help, -h Show this help message and exit.
--server=SERVER The server to use to determine the latest
-s SERVER SDK version.
--address=ADDRESS The address of the interface on the local machine
-a ADDRESS to bind to (or 0.0.0.0 for all interfaces).
--port=PORT The port number to bind to on the local machine.
-p PORT
--sdk_root=root Overrides where the SDK is located.
--disable_update_check Disable the check for newer SDK versions.
EDIT: gae:run with the jvmFlags option is also giving me the same result with the below configuration.
<plugin>
<groupId>net.kindleit</groupId>
<artifactId>maven-gae-plugin</artifactId>
<version>0.5.0</version>
<configuration>
<jvmFlags>
<jvmFlag>-Xdebug</jvmFlag>
<jvmFlag>-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000</jvmFlag>
</jvmFlags>
</configuration>
</plugin>
It looks like this is an open issue. I have submitted a patch for this (see Issue 38).

IllegalAccessError when calling ant script from maven-antrun-plugin

I just updated Maven from 2.0.9 to 2.2.1 and I'm getting the following exception when running a maven build:
INFO] [antrun:run {execution: precompile-jsp}]
[INFO] Executing tasks
default:
jspc:
[mkdir] Created dir: C:\builds\trunk\webapps\vyre_portlets\WEB-INF\jsp_src
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] An Ant BuildException has occured: The following error occurred while executing this line:
C:\unify\trunk\portlets\build-jsps.xml:87: The following error occurred while executing this line:
C:\unify\trunk\portlets\build-jsps.xml:7: java.lang.IllegalAccessError: tried to access method org.apache.tools.ant.launch.Locator.decodeUri(Ljava/lang/String;)Ljava/lang/String; from class org.apache.tools.ant.AntClassLoader
The build-jsps.xml ant script runs the org.apache.jasper.JspC task to precompile JSP in the a webapp that maven is building. This was working fine with Maven 2.0.9.
Google gives a bunch of people asking similar questions, but no answers. Has anyone run into this and knows how to resolve this? Or even just why I'm getting the IllegalAccessError?
try to set ANT dependency for "maven-antrun-plugin" explicitly.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
....
</executions>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-nodeps</artifactId>
<version>1.7.0</version>
</dependency>
</dependencies>
</plugin>
Note that there are multiple places where you can find ANT in Maven's public repository:
<groupId>org.apache.ant</groupId>
<groupId>ant</groupId>
(2) is the old one so use (1) instead
In Maven 2.2.x, the versions of many of the plugins have been updated, if you run the build with -X, you'll see what version of the antrun-plugin has been used. If these are different versions, it may be using a different version of org.apache.tools.ant.launch.Locator. Looking at the change history for Locator, the decodeUri method was introduced in Ant 1.7 and has been tweaked a few times, though nothing that would obvioulsy cause the problem.
Can you post a minimal pom and ant configuration that shows the error? this would help diagnose the problem.

Categories