Fast and efficient development with Payara Server & IntelliJ IDEA Ultimate
Co-Author: Rudy De Busscher, Payara
In this blog, we’re going to look at how to use Payara Server with IntelliJ IDEA Ultimate. We’ll cover how to create a simple web application that runs on a Payara server. We’ll also explore some of the features available to help you develop your enterprise applications.
Payara Server Support in IntelliJ IDEA
IntelliJ IDEA provides great tooling for developing with Payara servers. By default, IntelliJ IDEA Ultimate comes with the Glassfish plugin installed and enabled. You can use the Glassfish plugin to start, stop and debug Payara servers along with other server functionality.
The Payara Platform Tools plugin provides all the features available in the Glassfish plugin plus additional tooling features like the Hot Deploy functionality available in Payara. To install the Payara Platform Tools plugin, go to your IDE settings (File -> Settings for Windows/Linux or IntelliJ IDEA -> Preferences for macOS) and navigate to Plugins. Select the Marketplace tab and search for Payara. Click on the Install button. Once the plugin is finished installed, you can start using it without needing to restart the IDE.
Configuring Payara Server in IntelliJ IDEA
If you do not have Payara Server installed already, you can go to the Payara Platform Community Edition downloads page and download the latest version – for this blog I’m using Payara Server 5.2021.2 (Full). After you download the zip file, extract it.
In IntelliJ IDEA, go to Run -> Edit Configuration… then click the + button in the top left corner. If you’re using the Payara plugin, choose the Payara Server -> Local configuration option. If you’re using the Glassfish plugin, choose the Glassfish Server -> Local configuration option.
In the Server tab, Click on the Configure… button and specify the directory where you have unzipped the Payara Server. You can tell if you have selected the correct directory if the dialog indicates the version of the Payara server that is installed there. Click OK.
Creating a new Web Application
In IntelliJ IDEA Ultimate, I’ll create a new project by clicking File -> New -> Project…. I’ll select the Java Enterprise option on the left menu. Then, I’ll choose the project’s SDK. If you have an existing configured SDK in IntelliJ IDEA, it will be listed in the top of the SDK list. Or you can use the Download a JDK… option. I will use this option to download Java 11 since it’s the latest Java version compatible with Payara. In the Download JDK Version field, I will select Java 11 as my Java version – which will give me a list of vendors to choose from. You can select any of the vendors. For this tutorial, I will select AdoptOpenJDK with Hotspot. Then click Download.
I will use the Web application project template which will provide me with some basic template files for my application.
For the Application Server field, I’ll click on the drop-down menu and select the Payara Server that we configured in the previous step. Then, I’ll click Next.
In the next window, I will leave Java EE 8 selected with the Servlet framework checked then click Next.
Then, I’ll give my project a name – I’ll call it
PayaraHelloWorld. I’ll also specify the Group id corresponding to my company name. Then, I’ll click Finish.
IntelliJ IDEA creates a simple web application and loads the project.
Note: the New Project window has changed slightly starting IntelliJ IDEA version 2021.1. You can perform similar steps to create your new project in 2021.1 and later versions.
Running the Web Application
In IntelliJ IDEA, I can use Shift+F10 for Windows/Linux or ^R for macOS to run my web application. The Services Window will come up and I’ll see the server logs showing the server starting.
Once the application is deployed, IntelliJ IDEA will open up my default browser and navigate to my web application in the browser.
Our web application is up and running!
Features for Jakarta EE Developers
IntelliJ IDEA Ultimate has many advanced features that makes development much easier for a Jakarta EE developer. Let us pick a few of them as covering them all will take too much space.
Code Completion and Refactoring
IntelliJ IDEA is aware of the context you are typing. A String is not just a series of characters when you are typing a JPA Query. The IDE detects that you are writing a query and offers you code completion as well as syntax checking.
For example, if you’re writing a JPA Query with an entity class called Customer, IntelliJ IDEA will provide you a list with the possible fields that you can use in the query.
The same goes for when you are writing JSF views. IntelliJ IDEA uses the information it finds in your CDI beans, for example, to suggest field values (although you still need to check if the values will be accepted since it also proposes Method Expressions when in this case only Value Expressions are allowed).
In addition, when you refactor your code, it replaces occurrences within Strings that describes your JPA Queries or JSF views. This way, you can write much more efficient and bug free code.
Along with the validation we already mentioned in the previous section, validations happen in many cases so that you get informed of problems before you need to test your application. For example, in the following image, IntelliJ IDEA Ultimate informs you that a JAX-RS resource class needs methods that are annotated with HTTP methods like
Or that a placeholder for a path parameter doesn’t match the value in the annotation.
IntelliJ IDEA has many tools built-in so you don’t need to leave your IDE. For example, you can interact with your Docker or Kubernetes environment right within the IDE. You see what is available, running and test your application immediately in a Docker Container.
Another useful tool is the Endpoints tool. You can have a look at all the JAX-RS endpoints that you have already defined in the application and view the OpenAPI document to see if they match with the requirements you have.
You can test out these endpoints and see not only the response but also the headers that you receive from the Payara Server.
IntelliJ IDEA has powerful enterprise features that make developing your enterprise applications easier, reliable and more efficient. Create your first web application on a Payara Server and try it out!
Subscribe to Blog updates
Thanks, we've got you!
The What, Why, and How of JPA Buddy in IntelliJ IDEA
Master JPA entity management with JPA Buddy in IntelliJ IDEA! Our latest article shows you how to simplify your workflow and reduce boilerplate code.
String Templates in Java – why should you care?
TLDR; The existing String concatenation options are difficult to work with and could be error prone. String Templates (a preview feature introduced in Java 21) greatly improves how we create strings in Java by merging constant strings with variable values. The name of this feature pretty much says …
Java Annotated Monthly – November 2023
Welcome to the Java Annotated Monthly – November 2023! As the Java world keeps on spinning, we've gathered a treasure trove of articles, talks, and insights to warm your Java developers’ hearts. This month's edition features a delightful blend of the latest technological advancements and the ever…
The Best of IntelliJ IDEA’s HTTP Client
In today's fast-paced tech world, easy and efficient management of web services and APIs is crucial. That's where IntelliJ IDEA's HTTP Client steps in, turning complex HTTP requests into a walk in the park. The HTTP Client is a feature-rich, text-based tool in IntelliJ IDEA Ultimate. It seamlessl…