Ich habe das Problem selbst gelöst und war sehr begeistert. Obwohl ich selbst keine Hilfe erhalten habe, hoffe ich, dass jemand anderes diesen Thread entdeckt und in der Lage ist, es zum Laufen zu bringen!
Ich habe also eine Vaadin-Anwendung, die in eine WAR-Datei kompiliert wurde. Ich habe es mit den folgenden Schritten auf OpenShift-Servern bereitgestellt:
Bereitstellung der kompilierten Webanwendung auf OpenShift
- Öffnen Sie OpenShift in Ihrem Webbrowser. Melden Sie sich bei Openshift an. Navigieren Sie zur betreffenden Anwendung.
- Rufen Sie den ssh-Code dieser Anwendung ab (er sollte sich rechts neben dem Bildschirm befinden) und befindet sich rechts neben den Cartridges. Kopieren Sie diesen Code mit Befehl-C oder Strg-C.
- Öffnen Sie Terminal und geben Sie
git clone ssh:\\xxxxxxxxxxxxxxxx...
ein - Wenn Sie wie ich einen Mac verwenden, sollte ein Projektverzeichnis unter
Users/Username/Appname
erstellt werden . Löschen Sie in diesem Verzeichnis den Quellordner undpom.xml
. Nehmen Sie Ihre kompilierte WAR-Datei und kopieren Sie sie in diewebapps
Verzeichnis . - Gehen Sie zum Terminal. Geben Sie
cd Appname
ein , und danngit add .
,git commit -m "Deployment"
und schließlichgit push
. - Ihre Anwendung sollte jetzt unter
www.openshiftappname-domainname.rhcloud.com/warfilename
vollständig funktionieren
MySQL-Zugriff
- Installieren Sie die Cartridges für MySQL und phpMyAdmin. Dies sollte über
Add Cartidge
verfügbar sein unteropenshift.com
App-Hub. - Notieren Sie Ihren
username
undpassword
in die MySQL-Datenbank, die OpenShift automatisch für Sie generiert. Gehen Sie zuwww.openshiftappname-domainname.rhcloud.com/phpmyadmin
, geben Sie die Authentifizierungsdaten ein. - In phpMyAdmin sollte die Server-IP-Adresse stehen; es sieht in etwa so aus:
127.x.y.z:3306
.x, y, and z
können einstellige bis dreistellige Zahlen sein. - Erstellen Sie schnell eine neue
database
benannt, was Sie wollen. Ich werde estest
nennen und dann konsequenterweise dort eine neue Tabelle mit dem Namentesttable
erzeugen . - Erinnern Sie sich an Ihre bereitgestellte WAR-Anwendung? Nun, wenn Sie MySQL verwenden, wetten Sie, dass Sie es bereits in Ihre Anwendung aufgenommen haben. Die grundlegenden Schritte zum Herstellen einer Verbindung zu MySQL sind wie folgt.
Java-Code
Gehen Sie zu dem offenen IDE-Projekt, das Sie in Ihre WAR-Datei kompiliert haben. Gehen Sie zur pom.xml in Ihrem Projekt, wenn es sich um ein Maven-Projekt handelt, und fügen Sie die Abhängigkeit hinzu:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
- Dann verwenden Sie den folgenden Code.
String s = "jdbc:mysql://" + host + ":" + port + "/" + name"
, wobei host die server IP address
ist , der Port ist 3306
und name ist der database name
, in meinem Fall 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();
}
Jetzt if (con == null)
Es hat nicht funktioniert. Und wenn es nicht null
ist , das tat es.
Zum Testen sollten Sie Ihre WAR-Datei neu kompilieren (nachdem Sie sie irgendwie visuell getestet haben). Wenn Sie weitere Hilfe benötigen, hinterlassen Sie bitte einen Kommentar. Es sollte funktionieren, wenn Sie die WAR-Datei kompilieren und die Schritte 4-6
wiederholen im ersten Abschnitt:Deployment of compiled webapp to OpenShift
. Danke!