2017-04-16 16 views
0

私はMongoDBを初めて使用しており、mongodサーバーとの接続を確立したいと考えています。 でも、私は私のプロジェクトに外部Jarファイルが含まれていたが、それでもここでエラーMongoClientはタイプに解決できません

を修正することはできませんエラーMongoClient cannot be resolved to a typeが私のコードで取得し、私は自分のコードに誤りがないと思いますが、私は私のプロジェクト

で間違ったJARファイルが含まれています
import com.mongodb.*; 
import java.util.concurrent.locks.Lock; 
import java.util.concurrent.locks.ReentrantLock; 

public class Dining { 

public static void main(String[] args) { 
Lock forks[] = new ReentrantLock[5]; 

try { 
    MongoClient mongoClient = new MongoClient("mongo"); 
    System.out.println("Connection to mongodb successful."); 
    DB db = mongoClient.getDB("mydb"); 
    System.out.println("Database 'mydb' created."); 
    DBCollection coll = db.createCollection("mycol", null); 
    System.out.println("Collection 'mycol' created."); 
} catch (Exception e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

    for(int i = 0; i<5; i++){ 
    forks[i] = new ReentrantLock(); 
} 

Thread p1 = new Thread(new Philosopher(forks[4], forks[0], "first")); 
Thread p2 = new Thread(new Philosopher(forks[0], forks[1], "second")); 
Thread p3 = new Thread(new Philosopher(forks[1], forks[2], "third")); 
Thread p4 = new Thread(new Philosopher(forks[2], forks[3], "fourth")); 
Thread p5 = new Thread(new Philosopher(forks[3], forks[4], "fifth")); 

p1.start(); 
p2.start(); 
p3.start(); 
p4.start(); 
p5.start(); 


} 
} 

class Philosopher implements Runnable { 
Lock leftFork = new ReentrantLock(); 
Lock rightFork = new ReentrantLock(); 
String name; 


public Philosopher(Lock leftFork, Lock rightFork, String name) { 
this.leftFork = leftFork; 
this.rightFork = rightFork; 
this.name = name; 
} 

@Override 
public void run() { 
try { 
think(name); 
eat(leftFork, rightFork, name); 
} catch (Exception e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
} 

private void eat(Lock leftFork, Lock rightFork, String name) throws Exception{ 
leftFork.lock(); 
rightFork.lock(); 
try 
{ 
MongoClient mongoClient = new MongoClient("localhost"); 
DB db = mongoClient.getDB("mydb"); 
DBCollection coll = db.getCollection("mycol"); 

System.out.println(name + " eating..."); 
BasicDBObject doc1 = new BasicDBObject(name , " eating..."); 
coll.insert(doc1); 

    Thread.sleep(1000); 
} catch (Exception e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
finally{ 
    System.out.println(name + " done eating and now thinking..."); 
    MongoClient mongoClient = new MongoClient("localhost"); 
    DB db = mongoClient.getDB("mydb"); 
    DBCollection coll = db.getCollection("mycol"); 
    BasicDBObject doc2 = new BasicDBObject(name , " done eating and now thinking..."); 
    coll.insert(doc2); 
    leftFork.unlock(); 
    rightFork.unlock(); 
} 
} 

public void think(String name) throws Exception{ 
try 
{ 
MongoClient mongoClient = new MongoClient("localhost"); 
DB db = mongoClient.getDB("mydb"); 
DBCollection coll = db.getCollection("mycol"); 
System.out.println(name + " thinking..."); 
BasicDBObject doc = new BasicDBObject(name , " thinking..."); 
coll.insert(doc); 
    Thread.sleep(1000); 
} catch (InterruptedException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
} 

} 
+0

どの依存マネージャーを使用していますか? –

+0

私はそれを理解しました私は間違った依存関係を使用しました。私たちはmongo-java-driver-2.10.1の依存関係を使用する必要があります。提案のおかげで –

+0

乾杯、投票アップは素晴らしいだろう@Akshay Naik –

答えて

0

追加:Eclipseのルナの私Web-content > WEB-INF > libフォルダへ

# mongo-java-driver-3.4.2.jar 
# mongob-driver-3.4.2 

は私の問題を解決しました。使用可能な最新のドライバを使用してください、記載されているものは、これを掲示した時点の最新です。

+3

これを追加する理由を説明することができます問題を修正しましたか?これは他の人が理由を理解せずにコピーするのではなく、あなたの答えから学ぶのに役立ちます。 – yanman1234

関連する問題