在使用Web浏览器测试我的Tridion内容交付Web服务时,我可以通过调用“http://webservice/odata.svc/”成功获取可用集合的列表,但是当我尝试访问其中一个集合时,例; http://webservice/odata.svc/Publi
http://webservice/odata.svc/Publications
我明白了
<message xml:lang="en-US">Unable to retrieve desired results.</message>
或特定项目
http://webservice/odata.svc/Publications(19)
我明白了:
<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.
此消息指向我的存储配置,但是我无法在文档中找到有关如何设置它以支持Web服务的任何明确指导.
我的存储应该如何配置?期望为服务和网站设立单独的部署者是否正常?我应该考虑哪些其他问题?
CD Web服务要求您的所有内容都在CD DB中.这对文件系统没有任何意义.如果你的FS上还有东西,那么CD Web服务的某些部分将无法正常工作.例如,考虑可能在FS上的页面 – 您将无法通过CD Web服务检索PageContent.对于您的问题,请检查您的CD Webservice cd_storage_conf.xml是否定义了数据库(JPA)连接.当然它是功能性的.检查通常的嫌疑人,数据库连接,用户,通行证,网址,JAR …
编辑:仔细查看堆栈跟踪,您必须将FS定义为默认存储介质(由于getOriginalDAO(…),产生FSDAOFactory.getDAOForTypeMapping(…)).所以我认为这是问题的根源.还要检查您的许可证是否有效,以及由于缺少/过期的CD许可证,您的“绑定”未恢复为FS.