Java Developer’s Center
Initially conceived as a pure Java Cloud, the platform has evolved to support multiple languages while maintaining a strong emphasis on Java. Its technological maturity and innovation have been acknowledged by the Java community, earning it the prestigious Duke’s Choice Award twice (in 2012 and 2018). This guide will introduce you to the unique features of Java hosting on the platform and help you get started with its extensive functionality.
Use the table of contents below to quickly find the information you need within the guide:
- Java Versions
- Java Application Servers
- Java Environment Creation
- Java Application Deployment
- Domains Management
- Automatic Vertical Scaling
- Horizontal Scaling: Manual and Automatic
- Java Clusterization
- Database Connection to Java Application
Java Versions
At present, the following Java distributions are accessible
- Oracle OpenJDK
- Alibaba Dragonwell
- Amazon Corretto
- Eclipse OpenJ9
- Eclipse Temurin
- GraalVM CE
- Oracle JDK Dev
- Zulu Community
Furthermore, our platform exclusively offers the latest available Java Engine versions. You can confirm the available versions from your account and make adjustments in the wizard during environment creation or through the topology tuning option.
You can select the preferred version when creating an environment or change it later. These procedures are detailed in the Java Versions document.
Java Application Servers
The platform supports a diverse range of software stacks, including a pure Java Engine and the following Java application servers:
Refer to the documentation below for more details on Java server specifics within the platform:
- Java App Server Configuration
- Java Garbage Collection
- Java Agent
- Java Tutorials
Java Environment Creation
To host a Java application, you need to create an appropriate environment. Open the topology wizard in your PaaS dashboard, navigate to the Java language tab, and select the desired Java application server, databases, and other stacks. If necessary, customize the settings (such as cloudlets, disk space, etc.) and click “Create.”
All added servers are fully isolated containers situated on different hosts to enhance availability. This isolation prevents the servers from interfering with one another. You can attach a public IP address to any of these servers for direct access. Otherwise, if you use the default settings, incoming requests to your application will be proxied by a Shared Load Balancer.
Java Application Deployment
After creating the environment, you can deploy your Java application. The platform fully automates the deployment process, enabling you to get your project up and running effortlessly.
The following deployment methods are supported:
- Via application archives: .war, .zip, .jar, and .ear files
- From a GIT/SVN remote repository, using the Maven build node
You can read the appropriate documents to learn more about the deployment of Java applications:
- Deployment Guide
- Maven Build Node
- Auto-Deploy Overview
- Deployment Hooks
There are also separate instructions for managing your projects via Gitblit and WebDAV.
Domains Management
You can bind a custom domain name to your application’s URL and use it instead of the default environment domain:
- CNAME Redirect: Recommended for dev and test environments, this method is used when employing a Shared Load Balancer.
- DNS A Record: Suitable for production environments, this method is used when a public IP is attached and can handle high traffic loads.
Additionally, using the swapping domains feature or the SwapExtIps API/CLI method, you can upgrade and modify your application with zero downtime, ensuring no interruption for your users.
Automatic Vertical Scaling
The platform dynamically allocates the number of cloudlets (i.e., RAM and CPU resources) required by your application to handle the current load. Simply specify the maximum limit, and the platform will handle everything automatically—no manual intervention is required. This feature, known as automatic vertical scaling, ensures that you never overpay for unused capacities while preventing resource shortages.
To set or change the vertical scaling limit, simply use the appropriate slider within the topology wizard.
Horizontal Scaling: Manual and Automatic
If your application gains significant popularity and a single node is insufficient, consider scaling it horizontally. To enhance reliability and high availability, all newly added nodes are created on different hardware nodes.
To set the required number of nodes, click the +/- buttons within the Horizontal Scaling section of the topology wizard. The load balancer will be added automatically.
You can also adjust the preferred scaling mode:
- Stateless: Simultaneously creates all new nodes from the base image template.
- Stateful: Sequentially copies the file system of the master container into the new nodes.
Horizontal scaling can be performed manually or automatically based on the current load on the node, which is monitored through tunable triggers.
Within the Settings > Auto Horizontal Scaling section, you can customize the scaling conditions according to your requirements. This includes setting the lower and upper limits (as a percentage) for specified resource types during specific periods. If the load exceeds or falls below the set limits, the process of adding or removing nodes will be triggered automatically.
The platform monitors five different types of resources through triggers:
- CPU
- Memory (RAM)
- Network
- Disk I/O
- Disk IOPS
The trigger starts monitoring the resource consumption immediately after addition. When the usage level surpasses the specified limit, the trigger becomes activated. If the load persists beyond a defined period, the trigger will be executed, adjusting the number of nodes accordingly.
Java Clusterization
The embedded application server clustering feature facilitates session replication between pairs of nodes, eliminating the need for additional software or Memcached usage to enhance application availability.
The platform offers automated session replication between Tomcat and TomEE servers using multicast, ensuring high availability for web applications within the Java cluster. This High-Availability feature can be enabled in the wizard during environment creation or topology tuning.
The platform now offers a more modern Auto-Clustering solution for the GlassFish, Payara, and WildFly stacks:
- Out-of-Box GlassFish & Payara Clustering: This feature enables seamless clustering for GlassFish and Payara, simplifying the setup process.
- WildFly Automatic Micro Clustering and Scaling: WildFly now supports automatic micro clustering and scaling, enhancing its scalability and performance.
Database Connection to Java Application
Within the Java environment, a set of scalable and fully manageable database servers can be effortlessly installed. To establish the connection, adjust your application based on the specific database you require:
- MySQL and MariaDB Connection
- PostgreSQL Connection
- MongoDB Connection
The platform offers high-quality Java hosting with enhanced availability, redundancy, and scalability features for your application.








