Recently, my Java EE application stopped working on OpenShift, saying things like
2013/08/31 21:03:10,887 INFO [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status report JBAS014775: New missing/unsatisfied dependencies: service jboss.jdbc-driver.mysql (missing) dependents: [service jboss.data-source.java:jboss/datasources/MysqlDS]
At boot, this error was much more complicated as it listed all the services not started during the app boot, i.e. all DAO and service EJBs etc.
Also, I thought it was caused by running out of space on the server and damaging something that way.
It turned to be out that the JDBC driver module has to be in git repo under
.openshift/config/modules/. It wasn't there before and the web worked, so I wonder if something changed in OpenShift. I thought this is done automatically when you add the cartridge.
I didn't find this specific case described somewhere clearly, so I'm puttng it here, hth.
So I had to add .openshift/config/modules/com/mysql/jdbc/main/mysql-connector-java-5.1.26-bin.jar
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="com.mysql.jdbc"> <resources> <resource-root path="mysql-connector-java-5.1.26-bin.jar"/> </resources> <dependencies> <module name="javax.api" /> <module name="javax.transaction.api" /> </dependencies> </module>
And, on an unrelated note, for redeploying the war, the deployment marker files may be used on OpenShift.