Android客户端与jboss服务器通信

时间:2012-02-07 16:23:16

标签: android jboss

我的android客户端对部署在jboss上的servlet进行URL连接。但是当我在模拟器中运行客户端时,似乎没有建立连接。我的客户代码:

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 manifest.xml中给出了互联网权限,并将网址更改为'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

现在它正在运作。我在清单标记中添加了Internet权限。之前我已将其添加到应用程序标记内。 参考我原来的问题,在做出所有建议的更改之后,仍然没有来自jboss服务器evene的响应。模拟器和jboss服务器之间似乎没有连接。

1 个答案:

答案 0 :(得分:1)

假设你的JBoss服务器和你的模拟器在同一台PC上运行,这里 您可以检查一些事项:

首先,确保您拥有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");

详情here。基本上这是假设您在开发机器上关闭了localhost的JBoss服务(即服务127.0.0.1),您的模拟器应该能够通过这个特殊的IP地址连接。