问题标签 [odata4j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
684 浏览

java - 在 Java 中生成和使用 OData XML

我正在尝试构建一个生产者和一个消费者,用于基于 GraphML 文件生成 OData。

仅使用来自 XML 的 odata4j 的示例生产者和消费者,我在尝试使用他们的示例生产者构建的示例文件时收到以下错误。

因此,当我基于此示例实现生产者并尝试基于消费者示例使用它时,会出现相同的错误。

任何帮助都将不胜感激。

0 投票
1 回答
1055 浏览

java - 我正在为 Android 使用 OData4j,我无法获取实体

这是我的代码:

在模拟器中运行时,出现错误:08-28 17:30:05.793: ERROR/AndroidRuntime(781): FATAL EXCEPTION: main java.lang.NoClassDefFoundError: javax.ws.rs.ext.RuntimeDelegate at org.odata4j.jersey .consumer.ODataJerseyConsumer.(ODataJerseyConsumer.java:22) 在 org.odata4j.jersey.consumer.ODataJerseyConsumer.(ODataJerseyConsumer.java:14) 在 org.odata4j.jersey.consumer.ODataJerseyConsumer$Builder.build(ODataJerseyConsumer.java:93 ) 在 com.example.toggleDemo.MainActivity.GetExpenseReports(MainActivity.java:38) 在 com.example.toggleDemo.MainActivity.onCreate(MainActivity. java:22) 在 android.app.ActivityThread 的 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)。performLaunchActivity(ActivityThread.java:2627) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 在 android.app.ActivityThread.access$2300(ActivityThread.java:125) 在 android.app.ActivityThread$H.handleMessage( ActivityThread.java:2033) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627 ) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:521) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java :868) 在 dalvik.system.NativeStart.main(Native Method) 的 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)2627) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 在 android.app.ActivityThread.access$2300(ActivityThread.java:125) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java.lang。 reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) at com. dalvik.system.NativeStart.main(本机方法)上的 android.internal.os.ZygoteInit.main(ZygoteInit.java:626)2627) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 在 android.app.ActivityThread.access$2300(ActivityThread.java:125) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java.lang。 reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) at com. dalvik.system.NativeStart.main(本机方法)上的 android.internal.os.ZygoteInit.main(ZygoteInit.java:626)2679) 在 android.app.ActivityThread.access$2300(ActivityThread.java:125) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 在 android.os.Handler.dispatchMessage(Handler.java:99)在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect .Method.invoke(Method.java:521) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626 ) 在 dalvik.system.NativeStart.main(Native Method)2679) 在 android.app.ActivityThread.access$2300(ActivityThread.java:125) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 在 android.os.Handler.dispatchMessage(Handler.java:99)在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect .Method.invoke(Method.java:521) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626 ) 在 dalvik.system.NativeStart.main(Native Method)dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:4627) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) at com.android.internal.os.ZygoteInit .main(ZygoteInit.java:626) 在 dalvik.system.NativeStart.main(Native Method)dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:4627) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) at com.android.internal.os.ZygoteInit .main(ZygoteInit.java:626) 在 dalvik.system.NativeStart.main(Native Method)第868章)第868章)

提前致谢!

0 投票
1 回答
652 浏览

android - 检测特定 IP 上的服务是否可用的最快方法是什么

我的 Android 程序必须扫描 255 个 LAN 地址以查找 OData 服务(WCF 数据服务)是否可用。

该服务在 1 或 2 台计算机上运行,​​局域网上有大约 20 台设备,但是当我的代码“扫描”正在使用但不托管服务的 IP 地址时,它不会立即抛出异常,而是等待很长时间所以找到 2 个地址需要 10 分钟。

这是代码:

如果服务未托管在那里,为什么它会在保留的 IP 处等待?

如果那里没有服务,我怎样才能立即检测到?

0 投票
0 回答
369 浏览

odata - 使用 odata4j 消费者发布批处理请求

我打算ODATA4J在我们的项目中使用库。

截至目前,我有一组需要发送到ODATA服务的记录。虽然我可以单独发送每条记录,但我正在寻找使用ODATA4J.

我可以找到有关生产者端库 ( ODataBatchProvider) 的参考资料。但是,无法在消费者方面找到文档。

感谢有关使用消费者(客户端)端库ODATA4J发布批处理请求的指针/文档中的任何帮助。

0 投票
1 回答
1476 浏览

java - 如何检索相关的Odata实体Odata4j

我无法使用odata4j库检索相关实体。我的问题如下:

A 与 B 有一对多的关系。A 有一个 B 类型项目的列表“bs”。我创建了实体 A 和链接使用

然后我使用以下方法检索实体 B,其中 convert 将检索到的对象的属性分配给 A 类型的对象:

在转换中,我尝试使用以下方法获取相关实体:

以上导致检索到链接,但“getRelatedEntity”返回 null

我是否使用了错误的链接和相关实体?如果是这样,我将如何在 Odata4j 中检索相关实体?网上的例子不多。

您的帮助将不胜感激。

谢谢

编辑: 我还尝试使用以下方法检索相关实体:

而且我尝试使用创建链接,这似乎以相同的方式工作,但需要额外调用来获取实体 B:

0 投票
1 回答
288 浏览

android - Android 客户端的 WCF 数据服务压缩

我使用驻留在 Windows 服务程序中的 WCF 数据服务服务,并使用 Android 手机使用Odata4j获取数据。我从中获得了大量数据,我需要压缩来自数据服务的数据。我认为GZip是一种标准的压缩算法,Android 应该有必要的解码方法。

可能吗?我找不到我的数据服务的压缩设置,更不用说解压缩的 Android 端了。实现这一目标的最佳方法是什么?

0 投票
1 回答
479 浏览

android - 如何获取 OData v3 WCF 数据服务调用以使用 v3 协议进行通信

我有一个有趣的情况。我有两个应用程序调用 Microsoft WCF OData 服务上的函数:

  1. Android 使用 OData4J 库 (v0.7)
  2. iOS 使用 OData4ObjC 库(iOS 6.1 的Elizabeth Duncan fork )

OData 服务是使用 Microsoft WCF 数据服务 v5.6 编写的。我[WebGetAttribute()]在我的服务类中的方法上使用了一个属性:

当 Android 应用进行 OData 函数调用时,WCF 数据服务会以复杂类型的 v1 集合进行响应。当 iOS 库对 WCF 数据服务进行函数调用时,它期望使用 v3 返回集合。

我的问题是:

  1. 是否可以让 OData4ObjC 库使用 OData v1 协议进行通信?
  2. 是否可以让 WCF 数据服务使用 OData v3 协议进行响应?
  3. 我需要做什么才能使第 1 项和/或第 2 项起作用?


这就是我所说的 OData v1 响应的意思:

这就是我所说的 OData v3 响应的意思:

0 投票
1 回答
6097 浏览

datetimeoffset - DateTimeOffset 上的 ODATA 过滤

我正在尝试过滤 DateTimeOffset(以下示例中的 myDate)。由于我想忽略时间部分,我相信过滤的唯一方法是分别比较年、月和日组件,例如

这也符合 ODATA 规范: http ://www.odata.org/documentation/odata-v3-documentation/url-conventions/#512412_year

问题是......它只是不起作用:

如果我使用下面的过滤器,那么我不会收到任何错误,但这不是我想要做的,因为 myDate 中的时间部分永远不会是午夜 (T00:00:00.000Z),所以相等总是导致 False:

任何想法?非常感谢!

0 投票
1 回答
194 浏览

android - 如何在 Android 中使用 odata4j 解码 GZip 流

我有一个使用 GZip 发送数据的 WCF 数据服务。我打算使用odata4j来读取该压缩流。如果它没有被压缩,它工作正常。我应该修改什么才能通过 odata4j 读取压缩流?

这是压缩流的 C# 代码:

这是读取数据的 Odata4j 部分:

0 投票
2 回答
4346 浏览

java - Odata with Olingo or Odata4j

I'm in over my head.

At the broadest level, I'm trying to expose an Odata interface to an existing pool of data exposed by a service written using Mule. When my Mule service is invoked, if I detect that the URL is Odata format, I want to delegate processing down to something written in Java and then feed the response from that component back to my caller.

I found the Olingo and OData4j libraries. My problem is that these start from building a Web service. But that's too far upstream for me. I have a Web service. What I need to understand are what components I need to implement in order to pass the URL (which I have in hand) onward to an Odata parser which will, in turn, invoke a data provider.

I'm a bit lost with this technology. Can someone point me to a very basic tutorial that clearly delineates this. Or, can they give me a couple steps like: "You have to implement A, B & C and then pass your URL into C.foo()"?

I've tried the Getting Started doc for both libraries but they both start with "first we'll implement a Web service" and don't clearly delineate (to me, at least) where that leaves off and pure Odata sets in.

Thanks.