1

当我在 URL 中传递一个实体时,它说...
找不到“书籍”的实体集或函数导入。

我正在尝试用 Java 公开书籍和出版商的“ODataService”。代码很长。所以你能建议我这可能是什么原因吗?

4

1 回答 1

0

我猜您没有在 EDM 提供程序Books中为实体类型(Book例如)定义实体集()。要检查这一点,您可以查看服务的根 URL(例如http://services.odata.org/V4/OData/OData.svc/)。我认为,在您的情况下,没有为以下定义集合条目Books

<service xmlns="http://www.w3.org/2007/app"  
         xmlns:atom="http://www.w3.org/2005/Atom"  
         xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" 
         xml:base="http://services.odata.org/V4/OData/OData.svc/"  
         m:context="http://services.odata.org/V4/OData/OData.svc/$metadata">
    <workspace>
        <atom:title type="text">Default</atom:title>
        <collection href="Books">
            <atom:title type="text">Books</atom:title>
        </collection>
        (...)
    </workspace>
</service>

您还可以检查实体类型是否定义为 type Book。看到这样的链接http://services.odata.org/V4/OData/OData.svc/$metadata

<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" 
           Version="4.0">
    <edmx:DataServices>
        <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" 
                Namespace="ODataDemo">
            <EntityType Name="Book">
            (...)
            </EntityType>
        </Schema>
    </edmx:DataServices>
</edmx:Edmx>

以下链接为您提供了有关如何使用 Olingo v4 实施 OData 服务的全面说明:

https://templth.wordpress.com/2015/04/27/implementing-an-odata-service-with-olingo/

请参阅“实现自定义 EdmProvider”部分以了解如何使用 Olingo 实现 EDM 提供程序。

希望它会帮助你,蒂埃里

于 2015-05-02T12:39:43.737 回答