Debugging: Diagnose and Detect the Cause of Errors in your Application

Uncategorized

This debugging guide will help you to diagnose and detect the cause of errors in your application by debugging Payara Server or Payara Micro.

Prerequisites : Payara NetBeans IDE Plugins Installation

1. Debugging the Application Deployed to Payara Server

If you want to debug your application deployed on Payara Server, you may start a server in the debug mode :

1.a) Using NetBeans IDE Plugin :

Adding Payara Server to NetBeans :

  • Go to ToolsServers.
  • Click Add Server.
  • Select Payara Server and choose a name for the server.
image11-3
  • Select the location of the Payara Server.
image12-3
  • Once Payara Server is added to NetBeans it can be found under Servers with the configured name. That’s how to add Payara Server to NetBeans.
image3-7

Debugging the Application :

  • First, the application run settings need to be configured to use Payara Server. Go to Properties on a project and then the Run section of this window. Now select the Payara Server from Server list.
image8-3
  • In the Projects window, navigate to the your project, right click and In the pop-up menu select Debug. The IDE start the Payara server in debug mode and deploys the project.
image7-3
  • Now add the breakpoints in the program, trace the program execution step-by-step by evaluating the value of variables and diagnosethe problem.
image4-4

1.b) Using the Command Line :

  • Alternatively you may also start the Payara Server in debug mode using the following asadmin command with –debug flag :
image2-7
  • After Payara Server starts you may manually attach the debugger to your application in the NetBeans IDE. From the main menu, select Debug Attach Debugger, enter the port value 9009 and click ok :
image1-6

2. Debugging the Payara Micro Application

If you want to debug your Payara Micro application, you may start a micro instance in the debug mode :

2.a) Using NetBeans IDE Plugin :

Creating Payara Micro Application :

  • Simply start up the NetBeans IDE and then Choose File → New Project from the main menu.
  • On the Choose Project panel, select Maven from Categories, select Payara Micro Application from Projects, and click Next.
image5-4
  • On the Name and Location panel, enter SampleMicro as the project name, set the Project Location, set the GAV details, and then click Next.
image14-2
  • Select Payara Micro version and click Finish.
image13-2
  • When you click Finish, the IDE creates the project.
image6-2

Debugging the Application :

  • In the Projects window, right click on the created project and select the Debug in the pop-up menu :
image10-3
  • Now, the IDE starts the Payara Micro instance in debug mode :
image4-1-3
  • Now add the breakpoints in the program, trace the program execution step-by-step by evaluating the value of variables and diagnosethe problem.

2.b) Using the Command line :

Creating the Payara Micro Application :

Payara Micro application can be created from command line using the following maven archetype command :

mvn archetype:generate -DarchetypeGroupId=fish.payara.maven.archetypes -DarchetypeArtifactId=payara-micro-maven-archetype -DarchetypeVersion=1.0.1 -DgroupId=fish.payara.micro -DartifactId=micro-sample -Dversion=1.0-SNAPSHOT

Maven will ask for the project detail confirmation. Press enter or press Y and Maven will start generate the Payara Micro project.

Debugging the Payara Micro Application :

Now open the pom.xml and update the configuration of  fish.payara.maven.plugins:payara-micro-maven-plugin by adding javaCommandLineOptions config under configuration tag :

<javaCommandLineOptions>
<option>
<value>-Xdebug</value>
</option>
<option>
<key>-Xrunjdwp:transport</key>
<value>dt_socket,server=y,suspend=y,address=5005</value>
</option>
</javaCommandLineOptions>

 

Now you are ready to start Payara Micro instance in debug mode with the following command :

mvn package payara-micro:start

When payara-micro goals will start executing,  you may manually attach the debugger to your application in the NetBeans IDE.

From the main menu, select Debug Attach Debugger, enter the port value 9009 and click OK to connect :

image1-1-4

Now, load the project in the IDE and add the breakpoints in program to analyse the program execution.

I recommend debugging via Payara Plugins

to quickly start the debugging session in one click.

{{cta(‘4c7626f5-1e53-418e-90c8-add6e4af19c9’)}}

Comments (9)

Post a comment

Your email address will not be published. Required fields are marked *

Payara needs the contact information you provide to us to contact you about our products and services. You may unsubscribe from these communications at any time. For information on how to unsubscribe, as well as our privacy practices and commitment to protecting your privacy, please review our Legal & Privacy Policy.

  1. Fernando Franzini

    Hi Gaurav
    Amazing post! Congrats!

    Would I be able to debug payara micro using IntelliJ Community creating maven project (just like you did) using this debug setting in pom.xml?

  2. Gaurav Gupta

    Hi Fernando,

    Yes, you will be able to debug the application from any Java IDE. You only need to attach the debugger manually from the IDE with the specified port in pom.xml.

    1. Fernando Franzini

      I didn’t find this option in intellij. Would you know how to do it on intelliJ?

      1. Gaurav Gupta

        Hi Fernando,

        You may manually attach debugger by creating the Remote run configuration in IntelliJ :

        Goto Run menu > Edit Configuration > Click + > select Remote option > enter host & port details > Save configuration

        Please follow the following StackOverflow answer for more details:
        https://stackoverflow.com/questions/21114066/attach-intellij-idea-debugger-to-a-running-java-process?answertab=votes#

  3. Fernando Franzini

    I just managed to debug at intelliJ community! Thank you!

  4. Fernando Franzini

    Hi Gaurav

    Can I use this post to ask how I could debug using IntelliJ Ultimate? I’ve seen some articles putting payara web profile as “add glassfish server” in intellij ultimate, but I don’t know how to do the same debug operation using payara micro?

    Best Regards.

    1. Gaurav Gupta

      Payara Micro is based on the Java EE web profile, To start in debug mode you need to run java command with arg “-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9009 -jar payara-micro-x.jar” or you may use Payara Micro Maven plugin and add these options in javaCommandLineOptions element and start instance using “mvn payara-micro:start”.

      After running the Payara Micro instance, connect to debug port from IntelliJ IDEA as described in above comments.

  5. Fernando Franzini

    Hello Gaurav
    Thanks for the answer. I was able to debug the way you said, for testing purposes all right. But for real development, it would be best for an automatic way to add payara micro as if it were a glassfish server and let intellij ultimate debug it automatically. How would you do that? Isn’t there a payara micro version to be unzipped? Or use the webprofile version itself and add the payara microprofile implementation to pom?
    Regards

    1. Gaurav Gupta

      Hi Fernando,

      Glad to hear that you are able to debug Payara Micro in Intellij ultimate.
      I would like to highly recommend to create tickets for a new feature in Intellij issue tracker (https://youtrack.jetbrains.com/issues).

      Few tickets are already there for Payara Server integration: https://youtrack.jetbrains.com/issue/IDEA-212638

Related Posts

4 minutes
Uncategorized

Leading the Way: Payara Platform Community 7 Beta Now Fully Jakarta EE 11 Certified

We’re excited to announce that Payara Platform Community 7 Beta application server is now fully certified as Jakarta EE 11 […]

What Is a Java Application Server? A Short Guide 6 minutes
Jakarta EE

What Is a Java Application Server? A Short Guide

Enterprise Java applications power global commerce, healthcare, government and countless other industries. These systems must be scalable, secure and […]

JBoss EAP 7 End of Support: What Java Developers Need to Know (And What to Do Next) 3 minutes
Cloud & Microservices

JBoss EAP 7 End of Support: What Java Developers Need to Know (And What to Do Next)

As a Java developer, you may not control runtime support contracts, but what you can do is help your team stay […]