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 dowebappskatalog . - 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 Cartidgena swoimopenshift.comcentrum aplikacji. - Zanotuj swoją
usernameipassworddo 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 zmoże być liczbami od jednej do trzech cyfr. - Szybko utwórz nową
databasenazwać, jak chcesz. Nazwę gotesta 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!