我有一个在JBossAS7上运行的应用程序,MongoDB作为数据库。该应用程序能够连接到本地MongoDB并按预期执行数据操作。当我尝试连接到OpenShift上托管的远程MongoDB时,无法建立数据库连接。
在创建OpenShift应用程序并添加MongoDB盒式磁带之后,我将ssh-ed到OpenShift应用程序服务器并输入命令env | grep OPENSHIFT_MONGODB_DB
以检索MongoDB主机信息,如下所示:
OPENSHIFT_MONGODB_DB_USERNAME=...
OPENSHIFT_MONGODB_DB_PASSWORD=...
OPENSHIFT_MONGODB_DB_HOST=...
OPENSHIFT_MONGODB_DB_GEAR_DNS=...
OPENSHIFT_MONGODB_DB_PORT=...
OPENSHIFT_MONGODB_DB_URL=...
OPENSHIFT_MONGODB_DB_GEAR_UUID=...
由于我使用的是DataNucleus JDO,以下是我如何在JBoss应用程序中设置Persistence Manager Factory(PMF)的属性,希望通过以上信息连接到OpenShift MongoDB:
properties.setProperty("javax.jdo.option.ConnectionURL","mongodb://[OPENSHIFT_MONGODB_DB_HOST]:[OPENSHIFT_MONGODB_DB_PORT]/[Database Name]");
properties.setProperty("javax.jdo.option.ConnectionUserName",[OPENSHIFT_MONGODB_DB_USERNAME]);
properties.setProperty("javax.jdo.option.ConnectionPassword",[OPENSHIFT_MONGODB_DB_PASSWORD]);
非常感谢这里的帮助。谢谢:))
答案 0 :(得分:0)
对documentation的简单检查表明
mongodb://[OPENSHIFT_MONGODB_DB_HOST]:[OPENSHIFT_MONGODB_DB_PORT]/[Database Name]
语法无效。接受的语法中没有双斜杠(除非您的主机名真的以双斜杠开头,我怀疑)