问题标签 [olingo]

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 投票
1 回答
300 浏览

java - Apache Olingo 4.2 API 抛出 java.lang.IllegalArgumentException

我正在尝试使用 apache Olingo 4.2 客户端 API 来访问支持 OData 4.0 的 Microsoft CRM OData 服务。我可以通过提供 OAuth 凭据来使用 Microsoft CRM 对 api 进行身份验证,但是在解析响应 EDMX 文档时,API 会抛出异常。它尝试将父 URL 与不同的参考 URL 匹配。

java.lang.IllegalArgumentException

引用的 EDMX 文档具有 URI http://vocabularies.odata.org/OData.Community.Keys.V1.xml,其中方案、主机或端口与主元数据文档 URI ' https://crmonlinebcone.crm8 不同。 dynamics.com/api/data/v8.1

如果有人遇到同样的问题,请就此提出建议。

0 投票
1 回答
484 浏览

apache-camel - Apache Camel-Oling2 读取端点不工作

我正在使用 Apache Camel 并尝试使用 Camel-Olingo2 组件读取 Odata,但每次都出现“serviceUri”错误。我已经尝试过文档实现,但找不到任何成功。请让我知道使用 camel-olingo2 组件与 odata 连接的方式。

代码:

例外:

线程“主”org.apache.camel.FailedToCreateRouteException 中的异常:无法在以下位置创建路由 route1:>>> To[olingo2://read/services.odata.org/OData/OData.svc/Persons‌​] <<<在路由中:Route(route1)[[From[direct:...]] -> [To[olingo2://read/http:... 因为无法解析端点:olingo2://read/services.odata .org/OData/OData.svc/Persons 由于:org.apache.camel.model.RouteDefinition.addRoutes(RouteDefini‌​tion.java:1072) 处的 serviceUri

0 投票
1 回答
195 浏览

java - 用于不同系统的 OData Olingo (API-) 包装器

介绍

我想设置一个 Olingo oData 服务(2.0,Java)。该服务在其自己的包中具有固定的模型定义。我还有一个 Java 用户管理。当用户向 Service 发送请求时,结果元数据保持不变(模型),但数据可以来自不同的系统。

这意味着:

  • 用户“John”从 System1 接收数据
  • 用户“Adam”从 System2 接收数据

问题

为不同的服务归档这样一个“API-Wrapper”系统的最佳实践是什么?可能有一个系统(System1)也可以与OData一起工作,所以我们只“转发”请求?在另一个系统(System2)上,我必须使用原始 GET 参数、句柄过滤器和 and and 构建一个“特殊 API”。

这对 Olingo 有可能吗?是否可以将批处理请求转发到 System1?System2有自己的批量请求实现吗?

更多信息:我正在使用 SAP HANA Cloud Platform,并希望使用不同的后端系统。

0 投票
1 回答
321 浏览

c# - 阻止 Microsoft OData 客户端请求完整元数据

我正在尝试使用 Microsoft.OData.Client 使用 Olingo OData 服务。对于大多数请求,客户端发送 header accept: application/json;odata.metadata=minimal,但是当我尝试遵循导航属性(即GET http://localhost/odata.svc/Parent(key)/Children)时,客户端发送 header accept: application/json;odata.metadata=full。Olingo v4.2 不支持 JSON 格式的完整元数据,并以 HTTP 406 Not Acceptable 进行响应。

有没有办法强制 Microsoft.OData.Client 使用元数据=最小,或者完整元数据是导航属性的内在要求?

0 投票
1 回答
317 浏览

apache-camel - Camel Olingo2 解析 URI?

我正在尝试使用顶部、格式和过滤器查询参数运行 Camel Olingo2 路由到 OData 服务,但是 Olingo 组件没有对参数进行编码,因此它会引发 URISyntaxException,如果我在调用组件之前对参数进行编码,那么参数将返回无效,有什么方法可以将过滤参数与 Olingo2 组件一起使用?

例子:

路线示例

错误日志

0 投票
1 回答
149 浏览

mysql - 如何将 Olingo4 与 MySql 或其他 jdbc 连接

我是 Olingo 的初学者。

我想了解 Olingo4。我如何将他连接到 jdbc (MySql)?在 olingo v2 - 我已连接。我认为在v2中一切都很好,在v4中必须实现,但我还没有找到。

非常感谢

0 投票
1 回答
842 浏览

java - 为什么 $expand 在我的 JPA/Olingo 项目中无法正常工作

我目前正在开发基于 JPA/Olingo 的 odata 服务。使用的 Olingo 版本是 2.0.7。使用的 JPA 实现是 eclipselink 版本 2.5.1。有两个实体通过 OneToMany 关系连接(公司、页面)。从服务中请求公司(例如 /odata/v2/Companies)而不使用 $expand 可以正常工作。请求页面也是如此。请求页面和扩展 CompanyDetails 也可以正常工作。以某种方式请求公司并扩展相关页面(例如 /odata/v2/Companies?$expand=Pages)会为页面返回一个大小为零的数组,尽管在调用延迟链接时(例如 /odata/v2/Companies('P') /Pages) 在公司实体中按预期返回页面数组。

这是我的 persistence.xml(省略其他尚未测试的实体):

我的公司类如下所示:

我的页面类如下所示:

我正在扩展 ODataJPAServiceFactory 并覆盖 initializeODataJPAContext 方法:

EntityManagerFactory 创建如下:

我的映射文件如下所示:

0 投票
0 回答
254 浏览

jpa - Olingo JPA Odata Producer-如何在实体之间存在关联时插入记录

我使用 olingo+JPA 和 MYSQL Db 创建了一个 oData 生产者,并实现了北风。我有一个表northwind.inventory_transactions,它与northwind.inventory_transaction_types 有fk 关系,这被转换为JPA 中的对象关系。当我使用 odata 时,我得到以下响应:

GET 请求 http/localhost:8080/sample/galaxyService.svc/InventoryTransactions?$format=json&$top=1

{ d: { 结果: [ { __metadata: { id: "http/localhost:8080/sample/galaxyService.svc/InventoryTransactions(35)", uri: "http/localhost:8080/sample/galaxyService.svc/InventoryTransactions(35) )”,类型:“sample.InventoryTransaction”},评论:null,客户:4,Extra:null,ID:35,InventoryTransactionType:1,Order:null,PurchaseOrder:null,数量:75,TransactionCreatedDate:“/Date( 1143023548000)/", TransactionModifiedDate: "/Date(1143023548000)/", 权重: "0", CustomerDetails: { __deferred: {enter code hereuri: "http/localhost:8080/sample/galaxyService.svc/InventoryTransactions(35)/CustomerDetails" } }, InventoryTransactionTypeDetails: { __deferred: { uri: "http/localhost:8080/sample/galaxyService.svc/InventoryTransactions(35) /InventoryTransactionTypeDetails" } }, OrderDetails: { __deferred: { uri: "http/localhost:8080/sample/galaxyService.svc/InventoryTransactions(35)/OrderDetails" } }, ProductDetails: { __deferred: { uri: "http/localhost: 8080/sample/galaxyService.svc/InventoryTransactions(35)/ProductDetails" } }, PurchaseOrderDetails: { __deferred: { uri: "http/localhost:8080/sample/galaxyService.svc/InventoryTransactions(35)/PurchaseOrderDetails" } }, PurchaseOrderDetailDetails : { __deferred: { uri: "http/localhost:8080/sample/galaxyService.svc/InventoryTransactions(35)/PurchaseOrderDetailDetails" } } } ] } }

在使用 POSTMAN 插件尝试 POST 操作时,我收到异常为“” 下面是请求 POST http/localhost:8080/sample/galaxyService.svc/InventoryTransactions

{“评论”:“”,“客户”:4,“额外”:空,“订单”:空,“PurchaseOrder”:空,“InventoryTransactionType”:1,“数量”:75,“交易创建日期”:“/日期(1143023548000)/”,“TransactionModifiedDate”:“/日期(1143023548000)/”,“重量”:“0”

} 错误:

异常 [EclipseLink-4002] (Eclipse Persistence Services - 2.5.1.v20130918-f2b9fc5): org.eclipse.persistence.exceptions.DatabaseException 内部异常: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: 列 'transaction_type' 不能null 错误代码:1048 调用:INSERT INTO inventory_transactions(ID、COMMENTS、EXTRA、QUANTITY、transaction_created_date、transaction_modified_date、WEIGHT、CustomerCode、transaction_type、customer_order_id、PRODUCT_ID、purchase_order_id)值(?、?、?、?、?、?、? , ?, ?, ?, ?, ?) bind => [12 个参数绑定] 查询:InsertObjectQuery(model.InventoryTransaction@63adef6d)

有人可以指导如何在我们有这样的关系的地方发帖吗?

谢谢,阿努巴夫。

0 投票
1 回答
3362 浏览

java - 如何使用 Olingo (Odata) 进行 HTTP 身份验证服务调用

我有一个受基本 HTTP 身份验证保护的 Web 服务可供访问。

如何设置 ODataClient 以将身份验证发送到 Web 服务?

0 投票
0 回答
655 浏览

hibernate - Hibernate 5 + Apache Olingo V4 + Maven Tomcat 插件= LinkageError

我想使用 Oracle 数据库、Hibernate 5 和 Apache Olingo V4 为自己构建一个小应用程序。

我使用 maven 将应用程序拆分为单独的 Hibernate 和单独的 OData 项目。

所以我的休眠服务正在工作。我的 Odata 服务(带有示例数据)也在工作。

现在我想使用 maven 组合这些项目。在 Odata 项目 pom 中,我添加了我的休眠项目的依赖项并收到以下错误消息。

SCHWERWIEGEND:servlet [jsp] 的 Servlet.service() 在路径 [/esa_odatav4] 的上下文中抛出异常 [java.lang.LinkageError:加载程序约束冲突:解析接口方法时“javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax /el/ExpressionFactory;" 当前类 org/apache/jsp/index_jsp 的类加载器(org/apache/jasper/servlet/JasperLoader 的实例)和类加载器(org/codehaus/plexus/classworlds/realm/ClassRealm 的实例)方法的定义类 javax/servlet/jsp/JspApplicationContext 对于签名中使用的类型 javax/el/ExpressionFactory 具有不同的类对象] 根本原因 java.lang.LinkageError: loader constraint violation: when resolve interface method "javax.servlet .jsp.JspApplicationContext。

我已经搜索了链接的错误,并发现了很多对我没有帮助的东西。我尝试了不同的排除。

为了运行应用程序,我使用了 maven tomcat 插件,但它不起作用。奇怪的是,如果我使用本地 tomcat 实例运行项目,它会完美运行。

有人知道如何在 Maven 插件上运行应用程序吗?

但我几乎可以肯定该错误与项目的库有关。我没有更多的线索。

我的 Hibernate 项目依赖项是:

我的 OData 依赖项是: