Tridion “内容交付服务报告”;无法检索所需的结果。”;

Tridion “内容交付服务报告”;无法检索所需的结果。”;,tridion,tridion-content-delivery,Tridion,Tridion Content Delivery,在使用web浏览器测试Tridion content delivery web服务时,我可以通过调用http://webservice/odata.svc/“,但是当我尝试访问其中一个集合时,例如 http://webservice/odata.svc/Publications 我得到 <message xml:lang="en-US">Unable to retrieve desired results.</message> 我得到: <message xml

在使用web浏览器测试Tridion content delivery web服务时,我可以通过调用http://webservice/odata.svc/“,但是当我尝试访问其中一个集合时,例如

http://webservice/odata.svc/Publications
我得到

<message xml:lang="en-US">Unable to retrieve desired results.</message>
我得到:

<message xml:lang="en-US">Unable to build publication entry: 
                             Unable to retrieve desired results.</message>
无法生成发布条目:
无法检索所需的结果。
在日志中,我得到了以下信息(我删除了时间戳等,使其更具可读性):

ODataService-ODATA.NET:资源检索:出版物
WebContext-setCurrentClaimStore:com.tridion.ambientdata.dotnet。DotNetClaimStore@576504fa,螺纹:螺纹-5
ODataWebserviceHandler-请求类型为application/atom+xml的OData提要/条目:发布
ODataWebserviceHandler-将$top设置为25
ResolverBase-请求的OData集合
StorageManagerFactory-加载publicationId/typeMapping/itemExtension:0/Query/null的非缓存DAO
JPQLExecutor-无法创建JPAQueryDAO对象
com.tridion.broker.StorageException:没有用于查询的数据访问对象
在com.tridion.storage.filesystem.FSDAOFactory.getDAOForTypeMapping(FSDAOFactory.java:177)~[cd\u datalayer.jar:na]
在com.tridion.storage.StorageManagerFactory.getOriginalDAO(StorageManagerFactory.java:450)~[cd\u datalayer.jar:na]
在com.tridion.storage.StorageManagerFactory.getDAO(StorageManagerFactory.java:271)~[cd\u datalayer.jar:na]
在com.tridion.storage.StorageManagerFactory.getDefaultDAO(StorageManagerFactory.java:178)~[cd\u datalayer.jar:na]
在com.tridion.webservices.odata.input.jpql.JPQLExecutor.(JPQLExecutor.java:61)[cd_webservice.jar:na]
在com.tridion.webservices.odata.input.jpql.JPQLExecutor.getExecutor(JPQLExecutor.java:103)[cd_webservice.jar:na]
在com.tridion.webservices.odata.input.resolver.PublicationsResolver.resolveCollection(PublicationsResolver.java:34)[cd_webservice.jar:na]
在com.tridion.webservices.odata.input.resolver.ResolverBase.resolve(ResolverBase.java:74)[cd_webservice.jar:na]
在com.tridion.webservices.odata.input.handler.ODataFeedRenderer.renderODataFeed(ODataFeedRenderer.java:45)[cd_webservice.jar:na]
在com.tridion.webservices.odata.input.handler.ODataWebserviceHandler.handleODataEntity(ODataWebserviceHandler.java:193)[cd_webservice.jar:na]
在com.tridion.webservices.odata.input.handler.ODataWebserviceHandler.HandlerResourceRequest(ODataWebserviceHandler.java:169)[cd_webservice.jar:na]
FilterValue-检查值:25是否为整数类型
FilterValue-值:25是整数
JPQLExecutor-JPAQueryDAO尚未实例化。可能使用了FS存储类型。
ResolverBase-无法生成提要无法检索所需结果。
此消息指向我的存储配置,但是我在文档中找不到任何关于如何设置它以支持web服务的明确指导


我的存储应该如何配置?期望服务和网站有一个单独的部署者是正常的吗?我还应该考虑哪些其他问题?

CD Web服务要求您的所有内容都在CD数据库中。这意味着文件系统中没有任何内容。如果FS上还有内容,CD Web服务的某些部分将无法工作。例如,想想可能在FS上的页面——您将无法通过CD Web服务检索页面内容

要解决您的问题,请检查CD Webservice CD_storage_conf.xml是否定义了数据库(JPA)连接。当然,它是功能性的。检查常见的可疑项、数据库连接、用户、密码、url、JAR


编辑:仔细查看堆栈跟踪,您必须已将FS定义为默认存储介质(由于
getOriginalDAO(…)
,生成了一个
FSDAOFactory.getDAOForTypeMapping(…)
)。所以我认为这是问题的根源。还要检查您的许可证是否有效,以及您的“绑定”是否由于CD许可证丢失/过期而未还原为FS。

作为其他人的额外输入,我也遇到了“无法检索所需结果”的响应,在我的情况下,这是由于我的CD_licenses.xml不在bin/config目录中,与其他配置文件一起。

事实上-一旦我将所有存储都转到数据库,问题就消失了。谢谢
<message xml:lang="en-US">Unable to build publication entry: 
                             Unable to retrieve desired results.</message>
ODataService - ODATA.NET: Resource retrieval: Publications
WebContext - setCurrentClaimStore: com.tridion.ambientdata.dotnet.DotNetClaimStore@576504fa, thread: Thread-5
ODataWebserviceHandler - Requested a OData feed/entry: Publications with type: application/atom+xml
ODataWebserviceHandler - Setting $top to 25
ResolverBase - Requested OData collection
StorageManagerFactory - Loading a non cached DAO for publicationId/typeMapping/itemExtension: 0 / Query / null
JPQLExecutor - Can not create JPAQueryDAO object
    com.tridion.broker.StorageException: No Data Access Object for Query
    at com.tridion.storage.filesystem.FSDAOFactory.getDAOForTypeMapping(FSDAOFactory.java:177) ~[cd_datalayer.jar:na]
    at com.tridion.storage.StorageManagerFactory.getOriginalDAO(StorageManagerFactory.java:450) ~[cd_datalayer.jar:na]
    at com.tridion.storage.StorageManagerFactory.getDAO(StorageManagerFactory.java:271) ~[cd_datalayer.jar:na]        
    at com.tridion.storage.StorageManagerFactory.getDefaultDAO(StorageManagerFactory.java:178) ~[cd_datalayer.jar:na]
    at com.tridion.webservices.odata.input.jpql.JPQLExecutor.<init>(JPQLExecutor.java:61) [cd_webservice.jar:na]
    at com.tridion.webservices.odata.input.jpql.JPQLExecutor.getExecutor(JPQLExecutor.java:103) [cd_webservice.jar:na]
    at com.tridion.webservices.odata.input.resolver.PublicationsResolver.resolveCollection(PublicationsResolver.java:34) [cd_webservice.jar:na]
    at com.tridion.webservices.odata.input.resolver.ResolverBase.resolve(ResolverBase.java:74) [cd_webservice.jar:na]
    at com.tridion.webservices.odata.input.handler.ODataFeedRenderer.renderODataFeed(ODataFeedRenderer.java:45) [cd_webservice.jar:na]
    at com.tridion.webservices.odata.input.handler.ODataWebserviceHandler.handleODataEntity(ODataWebserviceHandler.java:193) [cd_webservice.jar:na]
    at com.tridion.webservices.odata.input.handler.ODataWebserviceHandler.handleResourceRequest(ODataWebserviceHandler.java:169) [cd_webservice.jar:na]
FilterValue - check if value: 25 is of Integer type
FilterValue - value: 25 is Integer
JPQLExecutor - JPAQueryDAO has not been instantiated. Probably FS storage type was used.    
ResolverBase - Unable to build feed Unable to retrieve desired results.