getEntity 调用导致崩溃(在 WCF 服务上使用 odata4j)
我正在我的 Android 应用程序中尝试使用 odata4j 从可从 WCF 服务访问的数据库中检索数据。
ODataConsumer co = ODataConsumer.create("http://xxx.xx.xx.xxx:xxxx/Users");
for(OEntity user : co.getEntities("Users").execute())
{
// do stuff
}
然而,这会在调用 getEntities 时崩溃。我也尝试了各种其他调用,例如
Enumerable<OEntity> eo = co.getEntities("Users").execute();
OEntity users = eo.elementAt(0);
但这也会在 eo.elementAt(0) 处崩溃。
logcat 没有告诉我任何信息,并且调用堆栈似乎在 ActivityThread.performLaunchActivity 处暂停。
另一方面,在我的 Web 浏览器中输入“http://localhost:xxxx/Users”可以按预期工作,并以 xml 格式返回我的数据库中的用户。
关于如何调试这个有什么想法吗?
I am trying out odata4j in my android app to retrieve data from a DB that can be accessed from a WCF service.
ODataConsumer co = ODataConsumer.create("http://xxx.xx.xx.xxx:xxxx/Users");
for(OEntity user : co.getEntities("Users").execute())
{
// do stuff
}
However this crashes at the call to getEntities. I have tried a variety of other calls as well, such as
Enumerable<OEntity> eo = co.getEntities("Users").execute();
OEntity users = eo.elementAt(0);
However this also crashes at eo.elementAt(0).
The logcat doesn't tell me anything, and the callstack seems to be Suspended at ActivityThread.performLaunchActivity.
Entering "http://localhost:xxxx/Users" in my web browser on the other hand works as expected and returns the users in my DB in xml format.
Any ideas on how I can debug this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
记录所有 http 请求/响应:
传递给消费者 .create 调用的 uri 应该是服务根。例如 .create("http://xxx.xx.xx.xxx:xxxx/");否则你的代码看起来不错。
请注意,Enumerable 的行为类似于 .net 类型 - 枚举被推迟到访问为止。如果您计划对结果进行多次索引,我建议您首先调用 .toList() 。
让我知道你发现了什么。
希望有帮助,
- 约翰
To log all http requests/responses:
The uri passed to the consumer .create call should be the service root. e.g. .create("http://xxx.xx.xx.xxx:xxxx/"); Otherwise your code looks fine.
Note the Enumerable behaves like the .net type - enumeration is deferred until access. If you plan on indexing multiple times into the results, I'd suggest you call .toList() first.
Let me know what you find out.
Hope that helps,
- john
我想调用应该是:
create
定义您想要连接的服务,但Users
是您想要查询的资源。I guess the call should be:
create
defines service you want to connect butUsers
is the resource you want to query.你可以尝试一下这个方法吗?
Can you try this way.