Jeg har løst problemet selv og var meget begejstret. Selvom jeg ikke selv modtog hjælp, håber jeg, at der er en anden, der kommer på denne tråd og kan få det til at virke!
Så jeg har en Vaadin-applikation, som er blevet kompileret til en WAR-fil. Jeg implementerede det til OpenShift-servere ved at følge følgende trin:
Implementering af kompileret webapp til OpenShift
- Åbn OpenShift i din webbrowser. Log ind på Openshift. Naviger til den pågældende applikation.
- Hent ssh-koden for det pågældende program (den skal være til højre på skærmen), placeret til højre for patronerne. Kopier koden ved at bruge Kommando-C eller Ctrl-C.
- Åbn Terminal og skriv
git clone ssh:\\xxxxxxxxxxxxxxxx...
- Hvis du er på Mac, som jeg er, skal den oprette en projektmappe på
Users/Username/Appname
. Slet kildemappen ogpom.xml
inde i den mappe . Tag din kompilerede WAR-fil og kopier den ind iwebapps
bibliotek . - Gå til Terminal. Indtast
cd Appname
, og dereftergit add .
,git commit -m "Deployment"
, og til sidstgit push
. - Din applikation skulle nu fungere fuldt ud på
www.openshiftappname-domainname.rhcloud.com/warfilename
MySQL-adgang
- Installer patronerne til MySQL og phpMyAdmin. Dette bør være tilgængeligt via
Add Cartidge
på dinopenshift.com
app-hub. - Bemærk dit
username
ogpassword
til MySQL-databasen, som OpenShift automatisk genererer til dig. Gå tilwww.openshiftappname-domainname.rhcloud.com/phpmyadmin
, skal du indtaste godkendelsesoplysningerne. - Inde i phpMyAdmin skulle der være serverens IP-adresse; det ligner
127.x.y.z:3306
.x, y, and z
kan være enkeltcifrede til trecifrede tal. - Opret hurtigt en ny
database
navngivet hvad du vil. Jeg vil kalde dettest
og derefter producere en ny tabel derinde ved navntesttable
. - Så kan du huske din installerede WAR-applikation? Nå, hvis du bruger MySQL, vil jeg vædde på, at du allerede har inkluderet det i din ansøgning. De grundlæggende trin for at etablere en forbindelse til MySQL er som sådan.
Java-kode
Gå til det åbne IDE-projekt, som du kompilerede i din WAR-fil. Gå til pom.xml inde i dit projekt, hvis det er et Maven-projekt, og tilføj afhængigheden:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
- Brug derefter følgende kode.
String s = "jdbc:mysql://" + host + ":" + port + "/" + name"
, hvor vært er server IP address
, porten er 3306
og navn er database name
, i mit tilfælde test
.
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
Connection con = DriverManager.getConnection(s, username, password);
}
catch (SQLException e) {
e.printStackTrace();
}
Nu if (con == null)
det virkede ikke. Og hvis det ikke er null
, det gjorde.
For at teste, bør du genkompilere din WAR-fil (efter at have sat en vis måde at teste den på). Hvis du har brug for yderligere hjælp, så læg en kommentar. Det burde virke, når du kompilerer WAR-fil og gentager trin 4-6
i det første afsnit:Deployment of compiled webapp to OpenShift
. Tak!