2016-10-22 8 views
0

Tomcatを使用してJavaバックエンドで作業し、couchbaseのホストされたインスタンスに接続しようとしています。私は クラスパス内のCouchbaseプロパティファイル

<Parameter name="CONFIG_DIRECTORY" value="/opt/platform/conf" override="false"/> 

はまた、私は../tomcat/bin/setenv.shでCLASSPATHのPARAMを設定している

../tomcat/Catalina/localhost/context.xml.defaultで私のconfigディレクトリへのパスまで設定しています以下は

CLASSPATH=/opt/platform/conf/ 

私が働いていたコードの抜粋です:

このコードで
String initialNodes = RuntimeData.INSTANCE.getConfigurationValue("MYNODES"); 
    String bucketId = RuntimeData.INSTANCE.getConfigurationValue("MYBUCKET"); 
    System.out.println("Creating cluster for " + initialNodes); 
    try { 
     System.out.println("HOST INET ADDRESS : " + InetAddress.getByName(initialNodes)); 
    } catch (UnknownHostException e) { 
     System.out.println("UNKNOWN HOST EXCEPTION : " + initialNodes); 
    } 

    cluster = CouchbaseCluster.create(initialNodes.split(",")); 
    System.out.println("Creating bucket for " + bucketId); 
    bucket = cluster.openBucket(bucketId, 10, TimeUnit.SECONDS); 
    System.out.println("Creating graph."); 
    graph = new CBGraph(); 

私はいくつかのデバッグログを持っていると私はinitialNodesためで正しい値を引いてないことを確認することができますバケツ。新しいCBGraph()を作成しようとすると、現在私の問題は最後の行に表示されます。

私はこのエラーを取得する:

Caused by: com.couchbase.client.core.config.ConfigurationException: No valid node found to bootstrap from. Please check your network configuration. 

私の推測では、何とか私のCouchbaseサーバーの接続情報のすべてが含まれているプロパティファイルをクラスパスにロード取得されていないか...またはそれがなっているということです私はそれを必要とするよりも遅くロードしました。

setenv.shにCLASSPATH設定を追加することができたのは、Tomcatが実行されると、ps auxw | grep tomcatを実行するとクラスパスにパスが表示されるということだけです。

この問題に関するお手伝いをします。私はいくつかの他の投稿を見てきましたが、私が得たエラー以外のここで解決しようとしている問題を正確にはわかりません。

ADDITION:

私は私のCouchbase .propertiesファイルを含むディレクトリをクラスパスにあることを確認することができ、実行時にINFOログを見てみます。 Couchbaseのは

INFO: Using the following configuration ... 
Oct 24, 2016 3:08:09 PM com.couchbase.graph.conn.ConnectionFactory  createCon 
INFO: hosts = ubuntu-local 

答えて

0

(以下コピー)のデフォルト値を使用して初期化しようとしているようですが、...それはあなたが指定されている住所が、有効なホスト名(またはIPアドレス)ではないかもしれない、とあなたはまた、これらのいずれかが表示されます見えますINFOログメッセージ:

https://github.com/couchbase/couchbase-jvm-core/blob/4127377b8bd057ed291176d568a1e868796e4e5a/src/main/java/com/couchbase/client/core/message/cluster/SeedNodesRequest.java#L85-L102

+0

私はSeedNodesRequestを呼ぶべきか?私はちょうどやっていたと思った:クラスタ= CouchbaseCluster.create(initialNodes.split( "、"));私の初期ノードのリストと一緒に。 – Deslyxia

+0

はい、表示されているようにしても構いませんが、initialNodeの外観を表示できますか? DNS名またはIPアドレスのいずれかである必要があります – avsej

+0

最初のノードは、AWSノードのDNS名です。私は1つだけにロードしています...私はもっと読み込むことができると思います。私のクラスタにノード名がある場合は適切な書式設定になります:aws4-74-22-973-9.uk-east-9.compute.amazonaws(これは現実的ではありません)そのホスト名だけを初期ノードにロードするか、その前に "http"が必要なのか、最後に ".com"などが必要なのでしょうか? – Deslyxia

関連する問題