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

CloudFoundry にデプロイすると、サービス (つまり、あなたの場合は mongo) への接続に関連する情報が、環境変数を通じてアプリで利用できるようになりますVCAP_SERVICES。これは、サービスごとに 1 つのエントリを持つ json ドキュメントです。もちろん、自分で解析することもできますが、クラスhttp://cf-runtime-api.cloudfoundry.com/org/cloudfoundry/runtime/env/CloudEnvironment.htmlが役立つことがわかります。プロジェクトに org.cloudfoundry/cloudfoundry-runtime/0.8.1 jar を追加する必要があります。スプリングなしでも使えます。

VCAP_SERVICESの基礎となる変数の説明については、http: //docs.cloudfoundry.com/services.html をご覧ください。

于 2012-10-23T10:10:21.457 に答える
0

MongoDB 用の Spring Data を使用することをお勧めします。特に、Spring の連中によってまとめられたCloudfoundry 用のサンプル アプリケーションがあります。少しの xml 構成で、使い慣れた Spring xxxTemplate パラダイムに似た mongoTemplate を注入する準備が整います。

于 2012-10-22T21:22:24.807 に答える