質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Cassandra

Cassandraは、key-valueストア型のデータベース管理ソフト及び オープンソースの分散データベース管理システムのことです。

Q&A

解決済

1回答

1038閲覧

Elipseを使用し、javaから Cassandra に接続ができない。

kenji267

総合スコア50

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Cassandra

Cassandraは、key-valueストア型のデータベース管理ソフト及び オープンソースの分散データベース管理システムのことです。

0グッド

1クリップ

投稿2018/11/01 15:05

編集2018/11/03 04:24

前提・実現したいこと

Eclipseを使用した開発環境で、Javaからcassandraにアクセスし、何か(キースペース等、とりあえずcassandraにアクセスして何か)を表示しようと試みています。

以下のサイト等参考にしながら行っています。
http://d.hatena.ne.jp/akishin999/20100430/1272642657

該当のソースコード

java

1import java.io.UnsupportedEncodingException; 2import java.util.Date; 3import java.util.Map; 4 5import org.apache.cassandra.thrift.Cassandra; 6import org.apache.cassandra.thrift.Column; 7import org.apache.cassandra.thrift.ColumnPath; 8import org.apache.cassandra.thrift.ConsistencyLevel; 9import org.apache.cassandra.thrift.InvalidRequestException; 10import org.apache.cassandra.thrift.NotFoundException; 11import org.apache.cassandra.thrift.TimedOutException; 12import org.apache.cassandra.thrift.UnavailableException; 13import org.apache.thrift.TException; 14import org.apache.thrift.protocol.TBinaryProtocol; 15import org.apache.thrift.protocol.TProtocol; 16import org.apache.thrift.transport.TSocket; 17import org.apache.thrift.transport.TTransport; 18 19import com.datastax.driver.core.KeyspaceMetadata; 20 21/** 22 * シンプルなインサート。 23 * 24 */ 25public class SimpleInsert1 { 26 27 public static void main(String[] args) { 28 try { 29 30 // Thrift を使用して Cassandra に接続 31 TTransport port = new TSocket("localhost", 9160); 32 TProtocol protocol = new TBinaryProtocol(port); 33 Cassandra.Client client = new Cassandra.Client(protocol); 34 port.open(); 35 36 // クラスタ名の表示 37 System.out.printf("Cluster name : [%s]\n", client.describe_cluster_name()); 38 39 // バージョンの表示 40 System.out.printf("Version : [%s]\n", client.describe_version()); 41 42// // 接続中クラスタの全キースペースを取得 43// for (String keyspace : client.describe_keyspaces()) { 44// // キースペース名の表示 45// System.out.printf("Keyspace : [%s]\n", keyspace); 46// // キースペース内の全 Column Family の取得 47// for (Map.Entry<String, Map<String, String>> entry : client.describe_keyspace(keyspace).entrySet()) { 48// System.out.printf("\tColumn Family : [%s]\n", entry.getKey()); 49// for (Map.Entry<String, String> innerEntry : entry.getValue().entrySet()) { 50// System.out.printf("\t\t[%s]:[%s]\n", innerEntry.getKey(), innerEntry.getValue()); 51// } 52// } 53// } 54 55 port.close(); 56 } catch (Exception e) { 57 e.printStackTrace(); 58 } 59 } 60}

補足情報(使用バージョンなど)

Eclipse:Version: 2018-09 (4.9.0)
cassandra:apache-cassandra-3.11.3 6

発生している問題・エラーメッセージ

上記バージョンでおこなていますが、デバッグするとport.open();のところでエラーが検出されます。
一体どういう理由が考えられるのでしょうか?

org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused (Connection refused) at org.apache.thrift.transport.TSocket.open(TSocket.java:187) at SimpleInsert1.main(SimpleInsert1.java:34) Caused by: java.net.ConnectException: Connection refused (Connection refused) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at org.apache.thrift.transport.TSocket.open(TSocket.java:182) ... 1 more

以下のメッセージにもはまっており、デバッグができかねる状況です。

「注: この要素の Javadoc は、添付されたソースまたは添付された Javadoc で見つかりませんでした。」

試したこと

以下を設定しましたが表示されません。
イメージ説明

調べていますが解決していません。可能であればこちらもご教授頂ければ助かります。

状況

これくらいは自力で調査していけと言われそうですが、このテーマを行ってから結構時間がたっています。
java、eclipseにもそんなに詳しいわけではなく、調べるところが多いです。
効率のいい道筋があればいいですが試行錯誤でできることから少しずつでも前に進めています。
もう少しスピードをあげたいです。
解決の方向としておそらく今回のバージョンに合わせ、接続箇所を変更する必要があると思いますので、そこを中心に調査中です。
しかしながらその調査にあたりわからないことが色々あり、例えば上記のjavadocに関してで、これを設定しないとデバッグの調査が進みません。
1つ1つの調査に時間がかかりすぎています。
調査はもちろん進めますが、何かわかることがあればお力いただきたいです。

どうかよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

【1】
エラーメッセージに**Connection refused (Connection refused)**とありますので、接続できなかったよエラーですね。
現時点で出されている情報から推測すると、下記が考えられます。

  • ローカルにCassandraが構築されていない。
  • Cassandraのポートが空いていない。
  • Cassandraにログインするための情報を別の場所で持ってるんでしょうけど、そのパスワード等が間違っている。

【2】
自分が業務で、WebアプリケーションでCassandraを使用した時は、下記URLに乗ってる感じで接続させましたが、絶対Thrift使わないといけないんでしょうか?(datastaxのJavaのドライバーとか

http://blog.katty.in/6408

【3】
注: この要素の Javadoc は、添付されたソースまたは添付された Javadoc で見つかりませんでした。
については、単純にJavadocが書かれていないか、関連付いてないかと思うので下記を試すのはいかがでしょうか。
http://www.atmarkit.co.jp/ait/articles/0408/03/news106.html

投稿2018/11/03 02:30

yukapome789

総合スコア361

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenji267

2018/11/03 04:39 編集

回答ありがとうございます。 (1)ローカルでは使用できているので、2,3番目だと考えていますが、なぜかここのことを記載している情報が少なく、止まっています。 (2)Thriftを使用しているのはeclipseで使用する時の情報で、Thriftを使用している情報が多いからです。特に深い理由はありません。あとこの情報でもそうですが、リンク切れがあったり、Mavenとか知りませんので、その調査に時間がかかったりします。 (3)上記試したのですがうまいこといきませんでした。 (1)ですが、cqlは実行できていますが、どこでポートが開いていないのか等の調査が知識不足です。 (2)ですが環境構築の練習としてまた試してみます。 (3)ですが、追加で画像アップしたのですがapi先が明らかに間違っていました。 一旦このテーマは区切りをつけ、(2)等を試しながら、今一度取り組みたいと思います。 ありがとうございます。
yukapome789

2018/11/05 15:56

【3】ですが、記載したURLの内容と同じことをやってもだめですよ。記事に「本稿では、J2SDK 1.4のrt.jar(Javaの標準ライブラリ)とJavadocの関連付けを例に、EclipseでライブラリとJavadocを関連付ける方法を紹介します。」と書かれてます。質問者さんの環境で、どの部分のJavadocが読み込めないエラーが出てるのかわからないですが、Thriftのライブラリのどこかなら、ThriftのJavadocのパスを指定してあげないとだめです。
kenji267

2018/11/06 13:52

回答ありがとうございます。 本件に取り組むにあたり他に行うことがあるだろうと考えまずはvagrant環境でcqlの処理など基本的な所から取り組んでいます。近い日に何とか上記回答を活かせるようにしたいと思います。 本件は一旦クローズし、近いうちに仕切り直したいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問