4

我已经安装了 eclipse、cloudfoundry 插件、scala 插件、vaadin 插件(用于 web 开发)和 mongodb 库。

我创建了一个这样的类:

import vaadin.scala.Application
import vaadin.scala.VerticalLayout
import com.mongodb.casbah.MongoConnection
import com.mongodb.casbah.commons.MongoDBObject
import vaadin.scala.Label
import vaadin.scala.Button

class Launcher extends Application {

   val label=new Label

   override def main = new VerticalLayout() {

      val coll=MongoConnection()("mybd")("somecollection")

      val builder=MongoDBObject.newBuilder
      builder+="foo1" -> "bar"
      var newobj=builder.result()
      coll.save(newobj)

      val mongoColl=MongoConnection()("mybd")("somecollection")

      val withFoo=mongoColl.findOne()

      label.value=withFoo
      add(label)

      //bouton pour faire joli
      add(new Button{
        caption_=("click me!")
      })
   }
}

错误(拒绝访问 mongodb 数据库)来自参数,这是默认参数。你知道如何在 scala 或 java 中设置好的参数吗?

4

3 回答 3

1

看起来你在vcap-dev邮件列表上得到了一些帮助

package com.example.vaadin_1

import vaadin.scala.Application
import org.cloudfoundry.runtime.env.CloudEnvironment
import org.cloudfoundry.runtime.env.MongoServiceInfo
import com.mongodb.casbah.MongoConnection


class Launcher extends Application {

   val cloudEnvironment = new CloudEnvironment()
   val mongoServices = cloudEnvironment.getServiceInfos(classOf[MongoServiceInfo])
   val mongo = mongoServices.get(0)
   val mongodb = MongoConnection(mongo.getHost(), mongo.getPort())("abc")
   mongodb.authenticate(mongo.getUserName(),mongo.getPassword())           
}
于 2012-11-02T19:35:45.323 回答
0

我建议使用Spring Data for MongoDB来实现,这里有一个 Cloudfoundry 的示例应用程序,特别是由 Spring 家伙放在一起。通过一些 xml 配置,您已经准备好注入类似于熟悉的 Spring xxxTemplate 范例的 mongoTemplate。

于 2012-10-22T21:22:24.807 回答
0

部署到 CloudFoundry 时,与连接到服务相关的信息(在您的情况下为 mongo)通过环境变量提供给应用程序VCAP_SERVICES。它是一个 json 文档,每个服务有一个条目。您当然可以自己解析它,但您会发现http://cf-runtime-api.cloudfoundry.com/org/cloudfoundry/runtime/env/CloudEnvironment.html类很有用。您需要将 org.cloudfoundry/cloudfoundry-runtime/0.8.1 jar 添加到您的项目中。您可以在没有 Spring 的情况下使用它。

查看http://docs.cloudfoundry.com/services.html以了解 VCAP_SERVICES 底层 var

于 2012-10-23T10:10:21.457 回答