Jag har löst problemet själv och var väldigt exalterad. Även om jag inte fick hjälp själv, hoppas jag att någon annan kommer med den här tråden och kan få det att fungera!
Så jag har en Vaadin-applikation, som har sammanställts till en WAR-fil. Jag distribuerade den till OpenShift-servrar genom följande steg:
Distribution av kompilerad webbapp till OpenShift
- Öppna OpenShift i din webbläsare. Logga in på Openshift. Navigera till applikationen i fråga.
- Hämta ssh-koden för det programmet (den ska vara till höger på skärmen) till höger om patronerna. Kopiera den koden med kommando-C eller Ctrl-C.
- Öppna Terminal och skriv
git clone ssh:\\xxxxxxxxxxxxxxxx...
- Om du är på Mac, som jag, bör den skapa en projektkatalog på
Users/Username/Appname
. Ta bort källmappen ochpom.xml
inuti den katalogen . Ta din kompilerade WAR-fil och kopiera den tillwebapps
katalog . - Gå till Terminal. Skriv
cd Appname
, och sedangit add .
,git commit -m "Deployment"
, och slutligengit push
. - Din applikation bör nu fungera fullt ut på
www.openshiftappname-domainname.rhcloud.com/warfilename
MySQL-åtkomst
- Installera patronerna för MySQL och phpMyAdmin. Detta bör vara tillgängligt via
Add Cartidge
på dinopenshift.com
apphubb. - Notera ditt
username
ochpassword
till MySQL-databasen som OpenShift automatiskt genererar åt dig. Gå tillwww.openshiftappname-domainname.rhcloud.com/phpmyadmin
, ange autentiseringsuppgifterna. - Inuti phpMyAdmin bör det finnas serverns IP-adress; det ser ut ungefär som
127.x.y.z:3306
.x, y, and z
kan vara ensiffriga till tresiffriga nummer. - Skapa snabbt en ny
database
heter vad du vill. Jag kommer att döpa det tilltest
och producera sedan en ny tabell där med namnettesttable
. - Så kommer du ihåg din distribuerade WAR-applikation? Tja, om du använder MySQL slår jag vad om att du redan har inkluderat det i din ansökan. De grundläggande stegen för att upprätta en anslutning till MySQL är som sådana.
Java-kod
Gå till det öppna IDE-projektet som du kompilerade till din WAR-fil. Gå till pom.xml i ditt projekt om det är ett Maven-projekt och lägg till beroendet:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
- Använd sedan följande kod.
String s = "jdbc:mysql://" + host + ":" + port + "/" + name"
, där värd är server IP address
, porten är 3306
och namn är database name
, i mitt fall, 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();
}
Nu if (con == null)
det gick inte. Och om det inte är null
, det gjorde.
För att testa, bör du kompilera om din WAR-fil (efter att ha gjort något sätt att visuellt testa den). Om du behöver mer hjälp, vänligen lämna en kommentar. Det borde fungera när du kompilerar WAR-fil och gör om stegen 4-6
i det första avsnittet:Deployment of compiled webapp to OpenShift
. Tack!