Ik heb het probleem zelf opgelost en was erg enthousiast. Hoewel ik zelf geen hulp heb gekregen, hoop ik dat iemand anders langs deze draad komt en het werkend kan krijgen!
Dus ik heb een Vaadin-applicatie, die is gecompileerd tot een WAR-bestand. Ik heb het als volgt op OpenShift-servers geïmplementeerd:
Implementatie van gecompileerde webapp naar OpenShift
- Open OpenShift in uw webbrowser. Log in op Openshift. Navigeer naar de betreffende toepassing.
- Verkrijg de ssh-code van die applicatie (deze zou rechts van het scherm moeten staan), rechts van de cartridges. Kopieer die code met Command-C of Ctrl-C.
- Open Terminal en typ
git clone ssh:\\xxxxxxxxxxxxxxxx...
- Als je een Mac gebruikt, zoals ik, zou het een projectdirectory moeten maken op
Users/Username/Appname
. Verwijder in die map de bronmap enpom.xml
. Neem je gecompileerde WAR-bestand en kopieer het naar dewebapps
map . - Ga naar Terminal. Typ
cd Appname
, en dangit add .
,git commit -m "Deployment"
, en tot slotgit push
. - Uw applicatie zou nu volledig moeten werken op
www.openshiftappname-domainname.rhcloud.com/warfilename
MySQL-toegang
- Installeer de cartridges voor MySQL en phpMyAdmin. Dit zou beschikbaar moeten zijn via
Add Cartidge
op uwopenshift.com
app-hub. - Noteer uw
username
enpassword
naar de MySQL-database die OpenShift automatisch voor u genereert. Ga naarwww.openshiftappname-domainname.rhcloud.com/phpmyadmin
, voer de authenticatiegegevens in. - In phpMyAdmin moet het IP-adres van de server staan; het ziet er ongeveer uit als
127.x.y.z:3306
.x, y, and z
kan een cijfer tot drie cijfers zijn. - Maak snel een nieuwe
database
genoemd wat je maar wilt. Ik noem hettest
en produceer daar vervolgens een nieuwe tabel met de naamtesttable
. - Herinner je je nog je geïmplementeerde WAR-applicatie? Nou, als je MySQL gebruikt, wed ik dat je het al in je applicatie hebt opgenomen. De basisstappen om een verbinding met MySQL tot stand te brengen zijn als zodanig.
Java-code
Ga naar het open IDE-project dat u in uw WAR-bestand hebt gecompileerd. Ga naar de pom.xml in je project als het een Maven-project is en voeg de afhankelijkheid toe:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
- Gebruik dan de volgende code.
String s = "jdbc:mysql://" + host + ":" + port + "/" + name"
, waarbij host het server IP address
is , de poort is 3306
en naam is de database name
, in mijn geval, 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)
Het is niet gelukt. En als het niet null
is , het deed.
Om te testen, moet u uw WAR-bestand opnieuw compileren (na een of andere manier om het visueel te testen). Als je meer hulp nodig hebt, laat dan een reactie achter. Het zou moeten werken als je het WAR-bestand compileert en de stappen 4-6
opnieuw uitvoert in de eerste sectie:Deployment of compiled webapp to OpenShift
. Bedankt!