4

Webブラウザを使用してTridionコンテンツ配信Webサービスをテストする場合、「http://webservice/odata.svc/」を呼び出すことで利用可能なコレクションのリストを正常に取得できますが、コレクションの1つにアクセスしようとすると、例;

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サービスをサポートするためにどのようにセットアップする必要があるかについての明確なガイダンスをドキュメントで見つけることができませんでした。

ストレージはどのように構成する必要がありますか?サービスとWebサイトに別々のデプロイヤーがあると予想するのは正常ですか?他にどのような問題を検討する必要がありますか?

4

2 に答える 2

6

CD Webサービスでは、すべてのコンテンツがCDDBにある必要があります。これは、ファイルシステムには何の意味もありません。FSにまだ何かがある場合は、CDWebサービスの一部が機能しません。たとえば、FS上にある可能性のあるページについて考えてみてください。CDWebサービスを介してPageContentを取得することはできません。

問題が発生した場合は、CD Webサービスcd_storage_conf.xmlがデータベース(JPA)接続を定義していることを確認してください。そしてもちろん、それは機能的です。通常の容疑者、db接続、ユーザー、パス、URL、JARを確認してください...

編集:スタックトレースを詳しく見ると、FSをデフォルトのストレージメディアとして定義している必要があります(getOriginalDAO(...)、を生成するためFSDAOFactory.getDAOForTypeMapping(...))。これが問題の根源だと思います。また、ライセンスが有効であること、およびCDライセンスの欠落/期限切れのために「バインディング」がFSに戻されていないことも確認してください。

于 2012-05-18T17:40:37.733 に答える
1

他の人への追加の入力として、私は「望ましい結果を取得できない」ことも経験していました。応答します。私の場合は、cd_licenses.xmlが他の構成ファイルとともにbin/configディレクトリにないことが原因でした。

于 2014-08-12T18:36:25.070 に答える