Разреших проблема сам и бях изключително развълнуван. Въпреки че аз самият не получих помощ, надявам се, че някой друг ще дойде в тази тема и ще успее да я накара да работи!
Така че имам приложение Vaadin, което е компилирано във WAR файл. Разположих го на OpenShift сървъри чрез следните стъпки:
Внедряване на компилирано уеб приложение в OpenShift
- Отворете OpenShift във вашия уеб браузър. Влезте в Openshift. Отидете до въпросното приложение.
- Вземете ssh кода на това приложение (трябва да е отдясно на екрана), разположен отдясно на касетите. Копирайте този код с помощта на Command-C или Ctrl-C.
- Отворете терминала и въведете
git clone ssh:\\xxxxxxxxxxxxxxxx... - Ако сте на Mac, като мен, той трябва да създаде директория на проекта в
Users/Username/Appname. В тази директория изтрийте папката източник иpom.xml. Вземете своя компилиран WAR файл и го копирайте вwebappsдиректория . - Отидете на терминал. Въведете
cd Appnameи след товаgit add .,git commit -m "Deployment"и накраяgit push. - Вашето приложение вече трябва да функционира напълно на
www.openshiftappname-domainname.rhcloud.com/warfilename
Достъп до MySQL
- Инсталирайте касетите за MySQL и phpMyAdmin. Това трябва да е достъпно чрез
Add Cartidgeна вашияopenshift.comцентър за приложения. - Запишете вашето
usernameиpasswordкъм MySQL базата данни, която OpenShift автоматично генерира за вас. Отидете наwww.openshiftappname-domainname.rhcloud.com/phpmyadmin, въведете идентификационните данни за удостоверяване. - Вътре в phpMyAdmin трябва да има IP адрес на сървъра; изглежда нещо като
127.x.y.z:3306.x, y, and zмогат да бъдат едноцифрени до трицифрени числа. - Бързо създайте нова
databaseнаречен както искаш. Ще го кръстяtestи след това съответно създава нова таблица там, нареченаtesttable. - И така, помните ли вашето разгърнато WAR приложение? Е, ако използвате MySQL, обзалагам се, че вече сте го включили в приложението си. Основните стъпки за установяване на връзка с MySQL са като такива.
Код на Java
Отидете на отворения IDE проект, който сте компилирали във вашия WAR файл. Отидете до pom.xml във вашия проект, ако е проект на Maven, и добавете зависимостта:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
- След това използвайте следния код.
String s = "jdbc:mysql://" + host + ":" + port + "/" + name" , където host е server IP address , портът е 3306 и име е database name , в моя случай, 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();
}
Сега if (con == null) не проработи. И ако не е null , го направи.
За да тествате, трябва да прекомпилирате вашия WAR файл (след като поставите някакъв начин за визуално тестване). Ако имате нужда от допълнителна помощ, моля, оставете коментар. Трябва да работи, когато компилирате WAR файл и повторите стъпки 4-6 в първия раздел:Deployment of compiled webapp to OpenShift . Благодаря!