Aperçu

Java Vanilla est un projet Java pur utilisant uniquement la bibliothèque standard et un serveur HTTP léger. Il offre un point de départ propre pour créer des applications web et des API REST sans surcoût de framework.

Avant de commencer
Assurez-vous que votre tableau de bord est ouvert - vous aurez besoin des identifiants Git qui y sont affichés. Ce modèle inclut un serveur HTTP léger, JDBC pour l'accès à la base de données et Gson pour le traitement JSON.

Démarrage rapide

1

Créer un dépôt à partir du modèle

Sur votre tableau de bord, allez dans l'onglet Tools & Deployment. Cliquez sur le bouton "New Repository", sélectionnez le modèle Java Vanilla dans le menu déroulant, saisissez un nom de dépôt et un sous-domaine, puis cliquez sur "Create Repository".

2

Cloner votre dépôt

git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
3

Construire le projet

mvn clean package
4

Exécuter l'application

java -jar target/app.jar

Le serveur s'exécute par défaut sur http://localhost:8080.

5

Pousser vos modifications

git add .
git commit -m "Initial setup"
git push origin main
Chaque push vers Git déploie automatiquement votre application. Consultez l'URL de travail du module sur votre tableau de bord pour voir votre site en ligne.

Développement local avec Docker

Si vous n'avez pas Java ou Maven installé localement, vous pouvez utiliser Docker pour construire et exécuter votre projet.

Qu'est-ce que Docker ?
Docker crée des "conteneurs" isolés contenant tous les logiciels nécessaires (Java, Maven) sans les installer sur votre ordinateur.

Exécuter des commandes avec Docker

# Construire le projet
docker run --rm -v $(pwd):/app -w /app maven:3-eclipse-temurin-21 mvn clean package

# Exécuter l'application
docker run --rm -v $(pwd):/app -w /app -p 8080:8080 eclipse-temurin:21 java -jar target/app.jar

Structure du projet

├── src/
│   └── main/
│       └── java/
│           └── com/example/
│               ├── App.java              # Point d'entrée et serveur HTTP
│               ├── handlers/             # Gestionnaires de requêtes
│               └── models/               # Modèles de données
├── pom.xml                               # Dépendances Maven
└── Dockerfile                            # Config Docker
        

Tâches courantes

Créer un gestionnaire HTTP

import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import java.io.IOException;
import java.io.OutputStream;

public class UsersHandler implements HttpHandler {
    @Override
    public void handle(HttpExchange exchange) throws IOException {
        String response = "{\"message\": \"Hello from Java!\"}";
        exchange.getResponseHeaders().set("Content-Type", "application/json");
        exchange.sendResponseHeaders(200, response.length());
        try (OutputStream os = exchange.getResponseBody()) {
            os.write(response.getBytes());
        }
    }
}

Connexion à la base de données avec JDBC

import java.sql.*;

String url = "jdbc:mysql://db.<session-domain>:3306/<username>";
Connection conn = DriverManager.getConnection(url, "username", "password");

PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users WHERE id = ?");
stmt.setInt(1, userId);
ResultSet rs = stmt.executeQuery();

Commandes utiles

mvn clean package Construire le projet
java -jar target/app.jar Exécuter l'application
mvn dependency:tree Afficher l'arbre des dépendances

Dépannage

java.sql.SQLException: Access denied

Solution : Vérifiez que votre URL de connexion JDBC, votre nom d'utilisateur et votre mot de passe correspondent aux identifiants de votre tableau de bord.

Le port 8080 est déjà utilisé

Solution : Modifiez le port dans votre App.java ou arrêtez l'autre processus qui utilise le port 8080.

ClassNotFoundException pour le pilote JDBC

Solution : Assurez-vous que le pilote JDBC MySQL est inclus dans les dépendances de votre pom.xml et relancez mvn clean package.

Flux de déploiement

Modification du code git push mvn package En ligne !
Pour plus d'informations, consultez la documentation Java.