Java 连接到mongoDB的代码错误,无法识别导入的jar
我正在尝试连接到mogoDB数据库,我安装了mongoDB,如中所述 在ubuntu终端上通过mongoshell玩mongo,一切都很精明,然后我尝试在android应用程序中实现它。我参考了本教程 并对其进行编辑以创建下面列出的我的代码 包com.example.test1Java 连接到mongoDB的代码错误,无法识别导入的jar,java,android,eclipse,mongodb,maven,Java,Android,Eclipse,Mongodb,Maven,我正在尝试连接到mogoDB数据库,我安装了mongoDB,如中所述 在ubuntu终端上通过mongoshell玩mongo,一切都很精明,然后我尝试在android应用程序中实现它。我参考了本教程 并对其进行编辑以创建下面列出的我的代码 包com.example.test1 import java.net.UnknownHostException; import java.text.MessageFormat; import java.util.Set; import android.
import java.net.UnknownHostException;
import java.text.MessageFormat;
import java.util.Set;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.mongodb.DB;
import com.mongodb.MongoClient;
public class InsertDocumentApp extends ActionBarActivity {
private Button btnRestart;
private Button btnCancel = null;
private TextView txtMessage = null;
private TextView txt=null;
private ProgressBar mProgressBar = null;
private HugeWork task = null;
private static final int MAX_PROGRESS = 10;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.showdata);
btnRestart = (Button) findViewById(R.id.btnRestart);
btnCancel = (Button) findViewById(R.id.btnCancel);
txtMessage = (TextView) findViewById(R.id.txtMessage);
mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
txt = (TextView) findViewById(R.id.textViewname);
// set an arbitrary max value for the progress bar
mProgressBar.setMax(MAX_PROGRESS);
// start the async task
start();
}
public void cancelOnclick(View v) {
task.cancel(true);
btnCancel.setEnabled(false);
btnRestart.setEnabled(true);
}
// Restart the process execution. This is the listener to the Restart button.
public void restartOnclick(View v) {
start();
}
private void start() {
task = new HugeWork();
task.execute(0);
mProgressBar.setProgress(0);
btnCancel.setEnabled(true);
btnRestart.setEnabled(false);
}
private void executeHardWork()
{
MongoClient mongoClient;
DB db;
try {
try
{
mongoClient = new MongoClient(); //connects to mongo server locally (seems to work)
// mongoClient = new MongoClient("localhost",27017); //connects to mongo server locally (seems to work)
mongoClient = new MongoClient("localhost",27017); // connects to mongo server locally
db = mongoClient.getDB("mydb"); // connect to a database --implicitly creates database if none exists
Set<String> colls = db.getCollectionNames();
for (String s : colls)
System.out.println(s);
mongoClient.close();
} catch (UnknownHostException ex) {
ex.printStackTrace();
}
}
catch(Exception e)
{
System.out.println(e);
}
}
@Override
protected void onPreExecute() {
txtMessage.setText("Executing async task...");
super.onPreExecute();
}
@Override
protected Integer doInBackground(Integer... params) {
int progress = ((Integer[])params)[0];
do {
if (!this.isCancelled()) {
// execute hard work - sleep
executeHardWork();
}
else {
break;
}
progress++;
publishProgress(progress);
} while (progress <= MAX_PROGRESS);
return progress;
}
@Override
protected void onProgressUpdate(Integer... values) {
int progress = ((Integer[])values)[0];
mProgressBar.setProgress(progress);
super.onProgressUpdate(values);
}
@Override
protected void onCancelled(Integer result) {
txtMessage.setText(MessageFormat.format
("Async task has been cancelled at {0} seconds.", result - 1));
super.onCancelled(result);
}
@Override
protected void onPostExecute(Integer result) {
txtMessage.setText(MessageFormat.format
("Async task execution finished in {0} seconds.", result - 1));
btnCancel.setEnabled(false);
btnRestart.setEnabled(true);
super.onPostExecute(result);
}
}
我可以通过终端进入数据库,但在ADT中现在显示以下错误
使用32位ubuntu有什么问题吗
而logcat是
04-09 10:03:47.175: W/com.mongodb.tcp(2682): Exception executing isMaster command on localhost/127.0.0.1:27017
04-09 10:03:47.175: W/com.mongodb.tcp(2682): java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 2 7017) after 10000ms: isConnected failed: ECONNREFUSED (Connection refused)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at libcore.io.IoBridge.isConnected(IoBridge.java:223)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at libcore.io.IoBridge.connectErrno(IoBridge.java:161)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at libcore.io.IoBridge.connect(IoBridge.java:112)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at java.net.Socket.connect(Socket.java:843)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBPort._open(DBPort.java:223)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBPort.go(DBPort.java:125)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBPort.go(DBPort.java:106)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBPort.findOne(DBPort.java:162)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBPort.runCommand(DBPort.java:170)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at co m.mongodb.DBTCPConnector.initDirectConnection(DBTCPConnector.java:547)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBTCPConnector.checkMaster(DBTCPConnector.java:526)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:236)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:216)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:288)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:273)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DB.getCollectionNames(DB.java:400)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.example.test1.InsertDocumentApp.executeHardWork(InsertDocumentApp.java:87)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.example.test1.InsertDocumentApp.access$1(InsertDocumentApp.java:76)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.example.test1.InsertDocumentApp$HugeWork.doInBackground(InsertDocumentApp.java:151)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.example.test1.InsertDocumentApp$HugeWork.doInBackground(InsertDocumentApp.java:1)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at android.os.AsyncTask$2.call(AsyncTask.java:288)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at java.lang.Thread.run(Thread.java:841)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): Caused by: libcore.io.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at libcore.io.IoBridge.isConnected(IoBridge.java:208)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): ... 27 more
04-09 10:03:47.175: W/com.mongodb(2682): emptying DBPortPool to localhost/127.0.0.1:27017 b/c of error
04-09 10:03:47.175: W/com.mongodb(2682): java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 27017) after 10000ms: isConnected failed: ECONNREFUSED (Connection refused)
04-09 10:03:47.175: W/com.mongodb(2682): at libcore.io.IoBridge.isConnected(IoBridge.java:223)
04-09 10:03:47.175: W/com.mongodb(2682): at libcore.io.IoBridge.connectErrno(IoBridge.java:161)
04-09 10:03:47.175: W/com.mongodb(2682): at libcore.io.IoBridge.connect(IoBridge.java:112)
04-09 10:03:47.175: W/com.mongodb(2682): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
04-09 10:03:47.175: W/com.mongodb(2682): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
04-09 10:03:47.175: W/com.mongodb(2682): at java.net.Socket.connect(Socket.java:843)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DBPort._open(DBPort.java:223)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DBPort.go(DBPort.java:125)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DBPort.call(DBPort.java:92)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:244)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:216)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:288)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:273)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DB.getCollectionNames(DB.java:400)
04-09 10:03:47.175: W/com.mongodb(2682): at com.example.test1.InsertDocumentApp.executeHardWork(InsertDocumentApp.java:87)
04-09 10:03:47.175: W/com.mongodb(2682): at com.example.test1.InsertDocumentApp.access$1(InsertDocumentApp.java:76)
04-09 10:03:47.175: W/com.mongodb(2682): at com.example.test1.InsertDocumentApp$HugeWork.doInBackground(InsertDocumentApp.java:151)
04-09 10:03:47.175: W/com.mongodb(2682): at com.example.test1.InsertDocumentApp$HugeWork.doInBackground(InsertDocumentApp.java:1)
04-09 10:03:47.175: W/com.mongodb(2682): at android.os.AsyncTask$2.call(AsyncTask.java:288)
04-09 10:03:47.175: W/com.mongodb(2682): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-09 10:03:47.175: W/com.mongodb(2682): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
04-09 10:03:47.175: W/com.mongodb(2682): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
04-09 10:03:47.175: W/com.mongodb(2682): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
04-09 10:03:47.175: W/com.mongodb(2682): at java.lang.Thread.run(Thread.java:841)
04-09 10:03:47.175: W/com.mongodb(2682): Caused by: libcore.io.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused)
04-09 10:03:47.175: W/com.mongodb(2682): at libcore.io.IoBridge.isConnected(IoBridge.java:208)
04-09 10:03:47.175: W/com.mongodb(2682): ... 23 more
04-09 10:03:47.255: D/dalvikvm(2682): GC_FOR_ALLOC freed 215K, 1% free 117331K/117612K, paused 36ms, total 36ms
04-09 10:03:47.315: D/dalvikvm(2682): GC_FOR_ALLOC freed 27K, 1% free 119327K/119424K, paused 32ms, total 32ms
04-09 10:03:47.375: D/dalvikvm(2682): GC_FOR_ALLOC freed 27K, 1% free 121338K/121432K, paused 34ms, total 34ms
04-09 10:03:47.375: I/System.out(2682): com.mongodb.MongoException$Network: Read operation to server localhost/127.0.0.1:27017 failed on database mydb
我不认为你可以从android内部使用MongoDb。请参阅此链接 您所指的链接,即,是从java应用程序而不是从android内部工作 我认为您的解决方案是,如果您希望在android设备中安装数据库,可以使用sqlite或couchbase,或者您可以在服务器中安装MongoDb数据库(或使用类似的数据库),并从安装在web服务器中的web服务调用此MongoDb数据库。所以设计可以是这样的。
您的android应用程序-->调用web服务-->调用Mongodb尝试将jar复制到eclipse项目中的libs文件夹,然后重新添加它,提供您计算机的ip,而不是本地主机。好的,但是,我想知道我的应用程序中发生错误的原因是什么?如果我至少导入jar文件,应用程序应该编译ri8?这里的错误甚至在应用程序运行之前就发生了,所以我猜测我下载的java mongo驱动程序不支持android?我想你是对的,MongoDb驱动程序现在支持android,但我仍然不知道这是否是个好主意。看看这些链接。当您像import com.MongoDb.DBCollection一样放置MongoDb导入时;您看到这些导入中的错误了吗?我没有这样做,lemme checki做了,所有的错误都消失了,现在它正在编译和运行,但是异常正在发生
04-09 05:27:59.671:W/System.err(1236):原因:java.net.ConnectException:10000毫秒后未能连接到localhost/127.0.0.1(端口27017):断开连接失败:EConrefused(连接被拒绝)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): Exception executing isMaster command on localhost/127.0.0.1:27017
04-09 10:03:47.175: W/com.mongodb.tcp(2682): java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 2 7017) after 10000ms: isConnected failed: ECONNREFUSED (Connection refused)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at libcore.io.IoBridge.isConnected(IoBridge.java:223)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at libcore.io.IoBridge.connectErrno(IoBridge.java:161)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at libcore.io.IoBridge.connect(IoBridge.java:112)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at java.net.Socket.connect(Socket.java:843)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBPort._open(DBPort.java:223)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBPort.go(DBPort.java:125)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBPort.go(DBPort.java:106)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBPort.findOne(DBPort.java:162)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBPort.runCommand(DBPort.java:170)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at co m.mongodb.DBTCPConnector.initDirectConnection(DBTCPConnector.java:547)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBTCPConnector.checkMaster(DBTCPConnector.java:526)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:236)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:216)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:288)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:273)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.mongodb.DB.getCollectionNames(DB.java:400)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.example.test1.InsertDocumentApp.executeHardWork(InsertDocumentApp.java:87)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.example.test1.InsertDocumentApp.access$1(InsertDocumentApp.java:76)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.example.test1.InsertDocumentApp$HugeWork.doInBackground(InsertDocumentApp.java:151)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at com.example.test1.InsertDocumentApp$HugeWork.doInBackground(InsertDocumentApp.java:1)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at android.os.AsyncTask$2.call(AsyncTask.java:288)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at java.lang.Thread.run(Thread.java:841)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): Caused by: libcore.io.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): at libcore.io.IoBridge.isConnected(IoBridge.java:208)
04-09 10:03:47.175: W/com.mongodb.tcp(2682): ... 27 more
04-09 10:03:47.175: W/com.mongodb(2682): emptying DBPortPool to localhost/127.0.0.1:27017 b/c of error
04-09 10:03:47.175: W/com.mongodb(2682): java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 27017) after 10000ms: isConnected failed: ECONNREFUSED (Connection refused)
04-09 10:03:47.175: W/com.mongodb(2682): at libcore.io.IoBridge.isConnected(IoBridge.java:223)
04-09 10:03:47.175: W/com.mongodb(2682): at libcore.io.IoBridge.connectErrno(IoBridge.java:161)
04-09 10:03:47.175: W/com.mongodb(2682): at libcore.io.IoBridge.connect(IoBridge.java:112)
04-09 10:03:47.175: W/com.mongodb(2682): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
04-09 10:03:47.175: W/com.mongodb(2682): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
04-09 10:03:47.175: W/com.mongodb(2682): at java.net.Socket.connect(Socket.java:843)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DBPort._open(DBPort.java:223)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DBPort.go(DBPort.java:125)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DBPort.call(DBPort.java:92)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:244)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:216)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:288)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:273)
04-09 10:03:47.175: W/com.mongodb(2682): at com.mongodb.DB.getCollectionNames(DB.java:400)
04-09 10:03:47.175: W/com.mongodb(2682): at com.example.test1.InsertDocumentApp.executeHardWork(InsertDocumentApp.java:87)
04-09 10:03:47.175: W/com.mongodb(2682): at com.example.test1.InsertDocumentApp.access$1(InsertDocumentApp.java:76)
04-09 10:03:47.175: W/com.mongodb(2682): at com.example.test1.InsertDocumentApp$HugeWork.doInBackground(InsertDocumentApp.java:151)
04-09 10:03:47.175: W/com.mongodb(2682): at com.example.test1.InsertDocumentApp$HugeWork.doInBackground(InsertDocumentApp.java:1)
04-09 10:03:47.175: W/com.mongodb(2682): at android.os.AsyncTask$2.call(AsyncTask.java:288)
04-09 10:03:47.175: W/com.mongodb(2682): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-09 10:03:47.175: W/com.mongodb(2682): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
04-09 10:03:47.175: W/com.mongodb(2682): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
04-09 10:03:47.175: W/com.mongodb(2682): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
04-09 10:03:47.175: W/com.mongodb(2682): at java.lang.Thread.run(Thread.java:841)
04-09 10:03:47.175: W/com.mongodb(2682): Caused by: libcore.io.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused)
04-09 10:03:47.175: W/com.mongodb(2682): at libcore.io.IoBridge.isConnected(IoBridge.java:208)
04-09 10:03:47.175: W/com.mongodb(2682): ... 23 more
04-09 10:03:47.255: D/dalvikvm(2682): GC_FOR_ALLOC freed 215K, 1% free 117331K/117612K, paused 36ms, total 36ms
04-09 10:03:47.315: D/dalvikvm(2682): GC_FOR_ALLOC freed 27K, 1% free 119327K/119424K, paused 32ms, total 32ms
04-09 10:03:47.375: D/dalvikvm(2682): GC_FOR_ALLOC freed 27K, 1% free 121338K/121432K, paused 34ms, total 34ms
04-09 10:03:47.375: I/System.out(2682): com.mongodb.MongoException$Network: Read operation to server localhost/127.0.0.1:27017 failed on database mydb