Java Vanilla
Overzicht
Java Vanilla is een puur Java-project dat alleen de standaardbibliotheek en een lichtgewicht HTTP-server gebruikt. Het biedt een schoon startpunt voor het bouwen van webapplicaties en REST API's zonder framework-overhead.
Snelstart
Repository aanmaken vanuit sjabloon
Ga in je dashboard naar het tabblad Tools & Deployment. Klik op de knop "New Repository", selecteer het Java Vanilla-sjabloon uit het dropdownmenu, voer een repository-naam en subdomein in en klik vervolgens op "Create Repository".
Je repository klonen
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Het project bouwen
mvn clean package
De applicatie uitvoeren
java -jar target/app.jar
De server draait standaard op http://localhost:8080.
Je wijzigingen pushen
git add .
git commit -m "Initial setup"
git push origin main
Lokale ontwikkeling met Docker
Als je geen Java of Maven lokaal hebt geïnstalleerd, kun je Docker gebruiken om je project te bouwen en uit te voeren.
Commando's uitvoeren met Docker
# Build the project
docker run --rm -v $(pwd):/app -w /app maven:3-eclipse-temurin-21 mvn clean package
# Run the application
docker run --rm -v $(pwd):/app -w /app -p 8080:8080 eclipse-temurin:21 java -jar target/app.jar
Projectstructuur
├── src/
│ └── main/
│ └── java/
│ └── com/example/
│ ├── App.java # Startpunt & HTTP-server
│ ├── handlers/ # Request-handlers
│ └── models/ # Datamodellen
├── pom.xml # Maven-afhankelijkheden
└── Dockerfile # Docker-configuratie
Veelvoorkomende taken
Een HTTP-handler aanmaken
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());
}
}
}
Database-verbinding met 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();
Handige commando's
mvn clean package
Het project bouwen
java -jar target/app.jar
De applicatie uitvoeren
mvn dependency:tree
Afhankelijkhedenboom tonen
Probleemoplossing
java.sql.SQLException: Access denied
Oplossing: Controleer of je JDBC-verbindings-URL, gebruikersnaam en wachtwoord overeenkomen met de inloggegevens uit je dashboard.
Port 8080 already in use
Oplossing: Wijzig de poort in je App.java of stop het andere proces dat poort 8080 gebruikt.
ClassNotFoundException for JDBC driver
Oplossing: Zorg ervoor dat de MySQL JDBC-driver is opgenomen in je pom.xml-afhankelijkheden en voer mvn clean package opnieuw uit.