Resolvi o problema sozinho e fiquei extremamente empolgado. Embora eu não tenha recebido ajuda, espero que alguém apareça neste tópico e consiga fazê-lo funcionar!
Então eu tenho um aplicativo Vaadin, que foi compilado em um arquivo WAR. Eu o implantei nos servidores OpenShift seguindo as seguintes etapas:
Implantação de webapp compilado para OpenShift
- Abra o OpenShift no seu navegador. Faça login no Openshift. Navegue até o aplicativo em questão.
- Obtenha o código ssh desse aplicativo (deve estar à direita da tela), localizado à direita dos cartuchos. Copie esse código usando Command-C ou Ctrl-C.
- Abra o Terminal e digite
git clone ssh:\\xxxxxxxxxxxxxxxx...
- Se você estiver no Mac, como eu, ele deve criar um diretório de projeto em
Users/Username/Appname
. Dentro desse diretório, exclua a pasta de origem epom.xml
. Pegue seu arquivo WAR compilado e copie-o para oswebapps
diretório . - Vá para o Terminal. Digite
cd Appname
, e entãogit add .
,git commit -m "Deployment"
, e finalmentegit push
. - Seu aplicativo agora deve funcionar totalmente em
www.openshiftappname-domainname.rhcloud.com/warfilename
Acesso MySQL
- Instale os cartuchos para MySQL e phpMyAdmin. Isso deve estar disponível em
Add Cartidge
em seuopenshift.com
hub de aplicativos. - Anote seu
username
epassword
para o banco de dados MySQL que o OpenShift gera automaticamente para você. Vá parawww.openshiftappname-domainname.rhcloud.com/phpmyadmin
, insira as credenciais de autenticação. - Dentro do phpMyAdmin deve estar o endereço IP do servidor; parece algo como
127.x.y.z:3306
.x, y, and z
pode ser de um dígito a três dígitos. - Crie rapidamente um novo
database
nomeie o que quiser. Vou chamá-lo detest
e, consequentemente, produzir uma nova tabela chamadatesttable
. - Lembre-se do seu aplicativo WAR implantado? Bem, se você estiver usando MySQL, aposto que já o incluiu em sua aplicação. As etapas básicas para estabelecer uma conexão com o MySQL são assim.
Código Java
Vá para o projeto IDE aberto que você compilou em seu arquivo WAR. Vá para o pom.xml dentro do seu projeto se for um projeto Maven, e adicione a dependência:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
- Em seguida, use o código a seguir.
String s = "jdbc:mysql://" + host + ":" + port + "/" + name"
, onde host é o server IP address
, a porta é 3306
e nome é o database name
, no meu caso, 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();
}
Agora
if (con == null)
não funcionou. E se não for null
, fez. Para testar, você deve recompilar seu arquivo WAR (depois de colocar alguma forma de testá-lo visualmente). Se precisar de mais ajuda, deixe um comentário. Deve funcionar quando você compilar o arquivo WAR e refazer as etapas
4-6
na primeira seção:Deployment of compiled webapp to OpenShift
. Obrigado!