Android-клиент общается с сервером Jboss - PullRequest
2 голосов
/ 07 февраля 2012

Мой клиент для Android устанавливает URL-соединение с сервлетом, развернутым в jboss.Но когда я запускаю клиент в эмуляторе, кажется, что соединение не устанавливается.Код моего клиента:

URL url = new URL("http://192.168.56.1:8080/hello");
              URLConnection connection = url.openConnection();
              connection.setDoOutput(true);
              ObjectOutputStream out=new ObjectOutputStream(connection.getOutputStream());
                String s=new String("success");
                out.writeObject(s);
                out.flush();
                out.close();

В jboss нет ответа.192.168.56.1 - это ip-адрес моей машины.Поскольку «localhost» будет ссылаться на сам эмулятор, я использовал 192.168.56.1. (Ipcofig). В чем проблема.

Это после того, как я внес предложенные изменения (т.е. дал разрешение на доступ в Интернет в манифесте android.xml и изменил URL-адрес на http://10.0.2.2:8080/hello' для обозначения моей машины).Но я все еще получаю это исключение, когда я запускаю свое приложение (Клиент):

ActivityManager: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.Client/.ClientActivity } from null (pid=-1, uid=-1) requires android.permission.INTERNET

Теперь оно работает.Я добавил разрешение в интернете к метке манифеста.Ранее я добавил его в тег приложения.Что касается моего первоначального вопроса, то все равно нет ответа от сервера jboss даже после внесения всех предложенных изменений.Кажется, между эмулятором и сервером jboss не установлено соединение.

1 Ответ

1 голос
/ 07 февраля 2012

Итак, если ваш сервер JBoss работает на том же компьютере, что и ваш эмулятор, здесь Вот несколько вещей, которые вы можете проверить:

Прежде всего, убедитесь, что у вас есть разрешение Internet, установленное в вашем AndroidManifest.xml как Thinksteep указал:

<uses-permission android:name="android.permission.INTERNET" />

Во-вторых, попробуйте изменить IP-адрес в:

URL url = new URL("http://192.168.56.1:8080/hello");

Кому:

URL url = new URL("http://10.0.2.2:8080/hello");

Подробности здесь . По сути, это означает, что при условии, что ваш JBoss отключен на localhost на вашей машине разработки (то есть на 127.0.0.1), ваш эмулятор должен иметь возможность подключения через этот специальный IP-адрес.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...