【发布时间】:2016-09-17 15:05:14
【问题描述】:
我正在测试一个连接到本地路由器的 Android 应用。在同一个 WiFi 网络上,还使用 Restlets 运行一些 Java Web 服务。我验证了 Android 应用可以点击服务过滤器,甚至可以收到服务过滤器的响应。但是,它似乎无法访问有问题的 Restlet 服务。
服务的完整网址是:
http://192.168.0.148:8080/MyApp/service/login
其中192.168.0.148 是运行 Restlet Web 服务的计算机的本地 IP 地址。
我将服务映射到我的 Restlet Application 类中,如下所示:
router.attach("/login", LoginResource.class);
我的web.xml 文件具有适当的映射,可以将具有/service/ 模式的任何内容路由到Restlet servlet。
从 SOAP UI 使用与我上面给出的完全相同的 URL 进行测试时,我可以成功地访问此服务。事实上,所有 Web 服务都已使用 SOAP UI 进行了端到端测试,并且功能齐全。
由于某种原因,Android 应用可以点击服务过滤器,但何时到达:
chain.doFilter(request, response);
请求最终在空间中丢失,没有任何返回。
我怀疑这主要是 Reslets 配置问题,虽然我不知道这里到底发生了什么。
【问题讨论】:
-
发布您用于连接服务器的代码。您是否收到超时错误?您可以从服务器登录以查看请求是否到达那里?
-
@nasch 正如我所提到的,只要从过滤器发送响应,Android 应用程序就可以发送和接收。但是当过滤器链被转发时,它永远不会到达
/login服务。
标签: android web-services restlet