0

我在我的 mobilefirst 混合应用程序中使用 SQL 适配器。Login 和所有其他 Sql 适配器在我的 web 模拟器中运行良好。

我刚刚在 android 设备上尝试了这个应用程序并在我的设备中执行登录操作,当时我在我的 LogCat 中收到以下错误(通过 USB 安装的应用程序)。我通过 USB 和 .apk 文件安装了该应用程序。在两种情况下,我的登录在我的 Android 设备上不起作用。

ERROR:

Request timeout for [/apps/services/api/projectfolder/android/query]

WLNativeXHRPlugin$NativeXHRPostListener.onException in WLNativeXHRPlugin.java:154 :: onException

org.apache.http.conn.ConnectTimeoutException: Connect to .. timed out

at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121)

at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)

at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)

at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)

at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)

at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:670)

at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509)

at com.worklight.wlclient.WLHybridRequestSender.run(WLHybridRequestSender.java:63)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)

at java.lang.Thread.run(Thread.java:856)

Android 设备通过 WIFI 连接在同一网络中。此应用程序在 Android 设备中发生的网络模拟器问题中运行良好。

适配器 XML 用于数据库连接

<dataSourceDefinition>
                <driverClass>com.mysql.jdbc.Driver</driverClass>
                <url>jdbc:mysql://databaseurl:3306/batabasename</url>
                <user>username</user>
                <password>password</password> 
            </dataSourceDefinition>

我的数据库 url 是公共 url 而不是 localhost(127.0.0.1) url。它在浏览器模拟器中完美运行

4

2 回答 2

0

尝试重新启动您的手机!这为我解决了这个问题。

于 2015-01-28T09:05:41.717 回答
0

日志显示:

org.apache.http.conn.ConnectTimeoutException:连接到..超时

需要弄清楚它试图连接到哪里。在您将其更改为“..”之前有什么?

几种理论:

  1. 如果您指向 localhost,请将其更改为 IP 地址
  2. 如果您有多个 IP 地址,请确保您使用的是服务器使用的正确一个(您可以尝试禁用任何网卡,只保留 1 个,这样您就只有 1 个 IP 地址;服务器应该会自动选择它,使用它也适用于适配器。
于 2015-01-06T15:49:50.893 回答