How to Debug spring-boot maven project in eclipse? - eclipse

I have spring-boot mvc project - maven.
Specifically I want to debug #Controller class.
I converted it to eclipse project with
mvn eclipse:eclipse -Dwtpversion=2.0
Then in eclipse, I tried to Debug it on Server (Tomcat 7), but got an error
The server does not support version 3.1 of the J2EE Web module
specification.
In Facets configurations, it doesn't allow me to choose any other version of 'Dynamic Web Module' from 3.1.
I also tried to debug like that: from project root I ran:
mvndebug spring-boot::run
And then connected debug-remote, but when I opened the page in browser, break point of the controller didn't trigger.

You should not use eclipse:eclipse cause it's deprecated very long time...If you like to debug the Spring Boot application you can do this via:
mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"
You need to start Eclipse via Debug configuration.
The execution mvnDebug... will debug Maven itself which is not what you want to do.

Related

Eclipse-Kepler, Maven and Setup Tomcat 7 debug (hot deploy)

I have maven based project with following structure:
main_project
module_webproject
module_java_proj_1
module_java_proj_2
module_java_proj_3
... ...
Everything compiles and packages fine with command line maven goals execution. I need to setup this project into eclipse environment for developers with tomcat deployment. Anyone know setup instructions?
Also, i am looking into tomcat hot deploy for debugging capabilities.
I have tried mvn eclipse:eclipse, this does only creation of .project and .classpath files. But projects directories are not treated as java or web projects.
Answer from following forum some what helps...
[Running Maven project on Tomcat from Eclipse
There can be a few reasons why you don't see the project in the Add/Remove projects dialog for Tomcat. Verify the following:
You have m2e installed (http://eclipse.org/m2e/download/)
You have m2e-wtp installed (http://www.eclipse.org/m2e-wtp/download/)
Your Maven project imported as a Dynamic Web Application. Look for a Deployment Descriptor entry when you expand the project, it should be somewhere in the first few entries. It is the second one down for me on Eclipse Juno. Not there? It's probably not a web app. Go back and verify 1 & 2, then remove and re-import your project.
Make sure that your web application is not too new for the version of Tomcat that you are using. Right-click the project and go to Properties > Project Facets. Look for Dynamic Web Module and check the version. If this version is too new for your Tomcat version, Eclipse won't let you add it. For instance, your Dynamic Web Module version is 3.0 and you're using Tomcat 6.

Using Jboss with maven eclipse project

I have create a maven project in eclipse .
I want to build my maven project using jboss and also debug it while running
Can any one share there code please on hot to use jboss with maven project.

Run configurations in maven

I want to use maven to run my application in test mode. I have a multi module project which uses gwt. To debug my app I want to do the following:
Run jetty in exploded directory
Run gwt in a hosted mode with -noserver option
Now I have to do this manually in the IDE. Is there any way to do this automatically from maven?
Using Maven, you can use the jetty-maven-plugin to run Jetty in your server module (use the start or run goal), and the gwt-maven-plugin to launch GWT's DevMode (use the run or debug goal).
To my knowledge, you cannot however do that with a single Maven command.
Have a look at https://github.com/tbroyer/gwt-maven-archetypes for sample configurations of such multi-module GWT projects.

deploying a war file in WTP(Eclipse) tomcat server

I have a maven build Java project.
My war file name is: test-1.0-SNAPSHOT.war
I am using M2E plugin in Eclipse.
I have run target mvn package.
Added server as tomcat version 7 in eclipse indigo 3.7. Server started. But my war file didn't deployed in the server.
I have tried by right clicking tomcat server and Add remove..., it says "there is no resources that can be added or removed from the server".
How can i deploy my war file in the eclipse WTP tomcat server?. Do i need to run any maven target?
Make sure that you have "Maven Integration for WTP" installed in your Eclipse instance.
First check if it's available through
Window->Preferences->Maven->Discovery->Open Catalog
If for whatever reason this does not work, you can get WTP integration from this update site (that's the version I am currently using):
https://repository.sonatype.org/content/repositories/forge-sites/m2eclipse-wtp/0.13.0/S/0.13.0.20110623-0455
This integration does a lifecycle mapping of maven-war-plugin into m2e architecture.
Once you've installed the WTP integration, you must restart eclipse and once it's restarted, right click on your web app project and choose: Maven->Update Project Configuration...
Also, I would advise to run a clean build at this time.
Last, but not least, delete and recreate your Tomcat server configuration (I don't know why, but I had to do it quite a few times when I switched to m2e).
I think eclipse is not recognizing your project as a web app, To confirm this
Open to do open J2ee perspective on your eclipse, If you open the project folder of your app, You should see (Deployment Descriptor)
If you don't see it, your app is not web app as far as eclipse is concerned
I have see this in case if you imported/created a maven command line project
To fix this
Select Project ==> Properties ==> Project Facets ==> make sure Dynamic Web Module check box is checked
If you do that the local tomcat server will add your app when do add remove projects
I think eclipse is not recognizing your project as web app,convert your project into web app by command mvn eclipse:eclipse -Dwtpversion=2.0 and try to deploy in Eclipse configured tomcat,it will work.
If you have Eclipse 3.5 or above you should ensure that you have both the m2eclipse (m2e for 3.7) plugin installed and its WTP add-on. With these you shouldn't need to change your configuration by hand.
Did you try to build your project from the command line and deploy it in Tomcat by hand?
By the way, have you read this wiki post? It's a bit old, but it may still be relevant.
Adding 2 cents to Prasanna wonderful solution.
I realized that building maven war files "mvn package" was just creating .war file but eclipse was not picking up that war but was deploying its some internal version of it's app war.
I found that server > Browse Deployment Location.. in Eclipse server view .. it was taking to some abstract location like "C:\Programs\workspaceSTS.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps"
Where I could see my exploded app deployed but it was not having any /classes folder just limited files.
Using Prasanna's method I realized that eclipse now was deploying full exploded .war now.
So this was happening coz changing the facets to Dynamic Web Module has actually populated "R-click project > Properties > Deployment Assembly "
This Web Deployment Assembly window only tells eclipse what to deploy and what not. So even if your project is NOT setup as Dynamic Web Module , and still if you configure "Web Deployment Assembly" values properly , eclipse will deploy the app fine to Tomcat/ Server.

Maven/Jetty to Maven/Tomcat Project

I have a project that I created with the Maven Archetype plugin and I added the Maven Jetty plugin so I can run the jetty server with "mvn jetty:run-war".
Now I have to change my project so that it integrates with Eclipse and Tomcat. I remember working on some projects which when I clicked the Tomcat button from the Sysdeo Eclipse Tomcat Launcher plugin, it would automatically compile the new code, deploy it to the Tomcat's webapp folder, and start the Tomcat server for you. Using tomcat also allows us to use the integrated Eclipse debugger.
How do I get that effect with my current Maven/Jetty setup without re-creating the entire project over again and starting it as a Tomcat project?
You can try using Tomcat Maven Plugin. It has similar goals to the jetty plugin. You just need to add the plugin configuration to your existing pom and make no additional changes.