Apžvalga

Java Vanilla yra paprastas Java projektas, naudojantis tik standartinę biblioteką ir lengvą HTTP serverį. Jis suteikia švarų atspirties tašką žiniatinklio aplikacijoms ir REST API kurti be jokio karkaso pertekliaus.

Prieš pradėdami
Įsitikinkite, kad jūsų valdymo skydelis atidarytas - jums reikės ten rodomų Git prisijungimo duomenų. Šiame šablone yra lengvas HTTP serveris, JDBC duomenų bazės prieigai ir Gson JSON apdorojimui.

Greitas startas

1

Sukurkite repozitoriją iš šablono

Valdymo skydelyje pereikite į skirtuką Tools & Deployment. Spauskite mygtuką "New Repository", išskleidžiamame sąraše pasirinkite Java Vanilla šabloną, įveskite repozitorijos pavadinimą ir subdomeną, tada spauskite "Create Repository".

2

Klonuokite savo repozitoriją

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

Sukompiliuokite projektą

mvn clean package
4

Paleiskite aplikaciją

java -jar target/app.jar

Pagal numatytuosius nustatymus serveris veikia adresu http://localhost:8080.

5

Įkelkite savo pakeitimus

git add .
git commit -m "Initial setup"
git push origin main
Kiekvienas push į Git automatiškai įdiegia jūsų aplikaciją. Patikrinkite Modulio darbo URL valdymo skydelyje, kad pamatytumėte savo gyvą svetainę.

Vietinis kūrimas su Docker

Jei vietoje neturite įdiegtos Java ar Maven, galite naudoti Docker savo projektui sukompiliuoti ir paleisti.

Kas yra Docker?
Docker sukuria izoliuotus „konteinerius" su visa reikalinga programine įranga (Java, Maven) jos neįdiegiant į jūsų kompiuterį.

Komandų vykdymas su Docker

# Sukompiliuoti projektą
docker run --rm -v $(pwd):/app -w /app maven:3-eclipse-temurin-21 mvn clean package

# Paleisti aplikaciją
docker run --rm -v $(pwd):/app -w /app -p 8080:8080 eclipse-temurin:21 java -jar target/app.jar

Projekto struktūra

├── src/
│   └── main/
│       └── java/
│           └── com/example/
│               ├── App.java              # Įėjimo taškas ir HTTP serveris
│               ├── handlers/             # Užklausų tvarkytuvai
│               └── models/               # Duomenų modeliai
├── pom.xml                               # Maven priklausomybės
└── Dockerfile                            # Docker konfigūracija
        

Įprastos užduotys

HTTP tvarkytuvo kūrimas

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());
        }
    }
}

Prisijungimas prie duomenų bazės su 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();

Naudingos komandos

mvn clean package Sukompiliuoti projektą
java -jar target/app.jar Paleisti aplikaciją
mvn dependency:tree Rodyti priklausomybių medį

Trikčių šalinimas

java.sql.SQLException: Access denied

Sprendimas: Patikrinkite, ar jūsų JDBC prisijungimo URL, vartotojo vardas ir slaptažodis sutampa su valdymo skydelio prisijungimo duomenimis.

Prievadas 8080 jau naudojamas

Sprendimas: Pakeiskite prievadą App.java faile arba sustabdykite kitą procesą, naudojantį 8080 prievadą.

ClassNotFoundException JDBC tvarkyklei

Sprendimas: Įsitikinkite, kad MySQL JDBC tvarkyklė įtraukta į jūsų pom.xml priklausomybes ir vėl paleiskite mvn clean package.

Diegimo eiga

Kodo pakeitimas git push mvn package Gyvai!
Daugiau informacijos rasite oficialioje Java dokumentacijoje.