Ho risolto il problema da solo ed ero estremamente entusiasta. Anche se non ho ricevuto aiuto da solo, spero che qualcun altro arrivi su questo thread e riesca a farlo funzionare!
Quindi ho un'applicazione Vaadin, che è stata compilata in un file WAR. L'ho distribuito sui server OpenShift con i seguenti passaggi:
Distribuzione della webapp compilata in OpenShift
- Apri OpenShift nel tuo browser web. Accedi a Openshift. Passa all'applicazione in questione.
- Ottieni il codice ssh di quell'applicazione (dovrebbe essere a destra dello schermo), che si trova a destra delle cartucce. Copia quel codice usando Comando-C o Ctrl-C.
- Apri Terminale e digita
git clone ssh:\\xxxxxxxxxxxxxxxx...
- Se sei su Mac, come me, dovrebbe creare una directory di progetto in
Users/Username/Appname
. All'interno di quella directory, elimina la cartella di origine epom.xml
. Prendi il tuo file WAR compilato e copialo inwebapps
directory . - Vai al Terminale. Digita
cd Appname
, quindigit add .
,git commit -m "Deployment"
e infinegit push
. - La tua applicazione dovrebbe ora funzionare completamente su
www.openshiftappname-domainname.rhcloud.com/warfilename
Accesso a MySQL
- Installa le cartucce per MySQL e phpMyAdmin. Dovrebbe essere disponibile tramite
Add Cartidge
al tuoopenshift.com
hub dell'app. - Annota il tuo
username
epassword
al database MySQL che OpenShift genera automaticamente per te. Vai awww.openshiftappname-domainname.rhcloud.com/phpmyadmin
, inserisci le credenziali di autenticazione. - All'interno di phpMyAdmin dovrebbe esserci l'indirizzo IP del server; assomiglia a
127.x.y.z:3306
.x, y, and z
possono essere numeri da una cifra a tre cifre. - Crea rapidamente un nuovo
database
chiamato quello che vuoi. Lo chiameròtest
e quindi di conseguenza produrre una nuova tabella lì chiamatatesttable
. - Quindi ricordi la tua applicazione WAR distribuita? Bene, se stai usando MySQL, scommetto che l'hai già incluso nella tua applicazione. I passaggi di base per stabilire una connessione a MySQL sono tali.
Codice Java
Vai al progetto IDE aperto che hai compilato nel tuo file WAR. Vai al pom.xml all'interno del tuo progetto se si tratta di un progetto Maven e aggiungi la dipendenza:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
- Quindi usa il seguente codice.
String s = "jdbc:mysql://" + host + ":" + port + "/" + name"
, dove host è l'server IP address
, la porta è 3306
e nome è il database name
, nel mio caso, 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();
}
Ora if (con == null)
non ha funzionato. E se non è null
, lo ha fatto.
Per testare, dovresti ricompilare il tuo file WAR (dopo aver provato in qualche modo a testarlo visivamente). Se hai bisogno di ulteriore aiuto, lascia un commento. Dovrebbe funzionare quando compili il file WAR e ripeti i passaggi 4-6
nella prima sezione:Deployment of compiled webapp to OpenShift
. Grazie!