Java Vanilla
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.
Greitas startas
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".
Klonuokite savo repozitoriją
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Sukompiliuokite projektą
mvn clean package
Paleiskite aplikaciją
java -jar target/app.jar
Pagal numatytuosius nustatymus serveris veikia adresu http://localhost:8080.
Įkelkite savo pakeitimus
git add .
git commit -m "Initial setup"
git push origin main
Vietinis kūrimas su Docker
Jei vietoje neturite įdiegtos Java ar Maven, galite naudoti Docker savo projektui sukompiliuoti ir paleisti.
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.