Sam rozwiązałem ten problem i byłem bardzo podekscytowany. Chociaż sam nie otrzymałem pomocy, mam nadzieję, że ktoś inny pojawi się w tym wątku i będzie w stanie go uruchomić!
Mam więc aplikację Vaadin, która została skompilowana do pliku WAR. Wdrożyłem go na serwerach OpenShift, wykonując następujące czynności:
Wdrażanie skompilowanej aplikacji internetowej w OpenShift
- Otwórz OpenShift w przeglądarce internetowej. Zaloguj się do Openshift. Przejdź do odpowiedniej aplikacji.
- Pobierz kod ssh tej aplikacji (powinien znajdować się na prawo od ekranu) znajdujący się po prawej stronie wkładów. Skopiuj ten kod za pomocą Command-C lub Ctrl-C.
- Otwórz terminal i wpisz
git clone ssh:\\xxxxxxxxxxxxxxxx...
- Jeśli jesteś na Macu, tak jak ja, powinien utworzyć katalog projektu w
Users/Username/Appname
. Wewnątrz tego katalogu usuń folder źródłowy ipom.xml
. Weź skompilowany plik WAR i skopiuj go dowebapps
katalog . - Przejdź do terminala. Wpisz
cd Appname
, a następniegit add .
,git commit -m "Deployment"
i wreszciegit push
. - Twoja aplikacja powinna teraz w pełni działać pod adresem
www.openshiftappname-domainname.rhcloud.com/warfilename
Dostęp do MySQL
- Zainstaluj kartridże dla MySQL i phpMyAdmin. Powinno to być dostępne poprzez
Add Cartidge
na swoimopenshift.com
centrum aplikacji. - Zanotuj swoją
username
ipassword
do bazy danych MySQL, którą OpenShift automatycznie generuje dla Ciebie. Przejdź dowww.openshiftappname-domainname.rhcloud.com/phpmyadmin
, wprowadź dane uwierzytelniające. - Wewnątrz phpMyAdmina powinien znajdować się adres IP serwera; wygląda jak
127.x.y.z:3306
.x, y, and z
może być liczbami od jednej do trzech cyfr. - Szybko utwórz nową
database
nazwać, jak chcesz. Nazwę gotest
a następnie w konsekwencji utwórz tam nową tabelę o nazwietesttable
. - Więc pamiętasz swoją wdrożoną aplikację WAR? Cóż, jeśli używasz MySQL, założę się, że masz go już w swojej aplikacji. Podstawowe kroki do nawiązania połączenia z MySQL są takie same.
Kod Java
Przejdź do otwartego projektu IDE skompilowanego do pliku WAR. Przejdź do pom.xml w swoim projekcie, jeśli jest to projekt Maven, i dodaj zależność:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
- Następnie użyj następującego kodu.
String s = "jdbc:mysql://" + host + ":" + port + "/" + name"
, gdzie host to server IP address
, port to 3306
a name to database name
, w moim przypadku 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();
}
Teraz if (con == null)
nie działało. A jeśli nie jest null
, tak było.
Aby przetestować, powinieneś ponownie skompilować plik WAR (po umieszczeniu sposobu na wizualne przetestowanie go). Jeśli potrzebujesz dalszej pomocy, zostaw komentarz. Powinno działać, gdy kompilujesz plik WAR i powtarzasz kroki 4-6
w pierwszej sekcji:Deployment of compiled webapp to OpenShift
. Dzięki!