2014-01-15 42 views
0

我有一个运行在JBossAS7上的应用程序,MongoDB作为数据库。应用程序能够连接到本地MongoDB并按预期执行数据操作。当我尝试连接到OpenShift上托管的远程MongoDB时,无法建立数据库连接。JBoss应用程序无法连接到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,下面是我如何设置持久性管理器工厂(PMF)在希望的JBoss应用的性能与上述信息连接到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

documentation简单的检查表明,

mongodb://[OPENSHIFT_MONGODB_DB_HOST]:[OPENSHIFT_MONGODB_DB_PORT]/[Database Name] 

是无效的语法。在接受的语法中没有双斜线(除非你的主机名真的是以双斜线开头,我怀疑)