Разреших проблема сам и бях изключително развълнуван. Въпреки че аз самият не получих помощ, надявам се, че някой друг ще дойде в тази тема и ще успее да я накара да работи!
Така че имам приложение 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
. Благодаря!