Не могу подключиться к своей базе данных Redis, используя Java-клиент Jedis в AndroidStudio
Я пытаюсь установить соединение с Jedis (Java-клиент для базы данных Redis) в Android Studio и получаю "стэк" ошибок. Сначала моей ошибкой было не поменять AndroidManifest, чтобы дать Internet permission. После этой манипуляции я получил android.os.NetworkOnMainThreadException. Я попытался создать соединение с Jedis в AsyncTask (не уверен, что я сделал это правильно) и получил "стэк" ошибок с "Caused by: android.system.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused)" в самом низу. Я так же пытался подключиться к Jedis в Eclipse с тем же самым "Jedis jedis = new Jedis("127.0.0.1", 6379);", все сработало отлично. Что я должен поменять в коде, чтобы получилось подключиться к Jedis?
Code:
package com.samfoundation.samfoundation;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import redis.clients.jedis.Jedis;
public class MainActivity extends AppCompatActivity {
Button click;
TextView show;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
click = (Button)findViewById(R.id.button);
show = (TextView)findViewById(R.id.textView);
final Connection con = new Connection();
con.execute();
click.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String message = con.doInBackground();
show.setText(message);
}
});
}
}
public class Connection extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... arg0) {
Jedis jedis = new Jedis("127.0.0.1", 6379);
String value = jedis.ping();
return value;
}
}
Logcat:
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$4.done(AsyncTask.java:399)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to host 127.0.0.1:6379
at redis.clients.jedis.Connection.connect(Connection.java:204)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:100)
at redis.clients.jedis.Connection.sendCommand(Connection.java:125)
at redis.clients.jedis.Connection.sendCommand(Connection.java:120)
at redis.clients.jedis.BinaryClient.ping(BinaryClient.java:113)
at redis.clients.jedis.BinaryJedis.ping(BinaryJedis.java:188)
at com.samfoundation.samfoundation.Connection.doInBackground(Connection.java:12)
at com.samfoundation.samfoundation.Connection.doInBackground(Connection.java:8)
at android.os.AsyncTask$3.call(AsyncTask.java:378)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Caused by: java.net.ConnectException: failed to connect to /127.0.0.1 (port 6379) from /127.0.0.1 (port 47956) after 1999ms: isConnected failed: ECONNREFUSED (Connection refused)
at libcore.io.IoBridge.isConnected(IoBridge.java:288)
at libcore.io.IoBridge.connectErrno(IoBridge.java:193)
at libcore.io.IoBridge.connect(IoBridge.java:135)
at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
at java.net.Socket.connect(Socket.java:621)
at redis.clients.jedis.Connection.connect(Connection.java:181)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:100)
at redis.clients.jedis.Connection.sendCommand(Connection.java:125)
at redis.clients.jedis.Connection.sendCommand(Connection.java:120)
at redis.clients.jedis.BinaryClient.ping(BinaryClient.java:113)
at redis.clients.jedis.BinaryJedis.ping(BinaryJedis.java:188)
at com.samfoundation.samfoundation.Connection.doInBackground(Connection.java:12)
at com.samfoundation.samfoundation.Connection.doInBackground(Connection.java:8)
at android.os.AsyncTask$3.call(AsyncTask.java:378)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Caused by: android.system.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused)
at libcore.io.IoBridge.isConnected(IoBridge.java:275)
at libcore.io.IoBridge.connectErrno(IoBridge.java:193)
at libcore.io.IoBridge.connect(IoBridge.java:135)
at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
at java.net.Socket.connect(Socket.java:621)
at redis.clients.jedis.Connection.connect(Connection.java:181)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:100)
at redis.clients.jedis.Connection.sendCommand(Connection.java:125)
at redis.clients.jedis.Connection.sendCommand(Connection.java:120)
at redis.clients.jedis.BinaryClient.ping(BinaryClient.java:113)
at redis.clients.jedis.BinaryJedis.ping(BinaryJedis.java:188)
at com.samfoundation.samfoundation.Connection.doInBackground(Connection.java:12)
at com.samfoundation.samfoundation.Connection.doInBackground(Connection.java:8)
at android.os.AsyncTask$3.call(AsyncTask.java:378)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)