Content Delivery Serviceは、「希望の結果を取得できません」と報告しています。
-
11-12-2019 - |
質問
Webブラウザを使用してMy Tridion Content Delivery Webサービスをテストするときは、「http://webservice/odata.svc/」を呼び出すことで、利用可能なコレクションのリストを正しく取得できますが、その1つにアクセスしようとすると例えばコレクション。
http://webservice/odata.svc/Publications
.
私はget;
<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サイトには別のデプロイヤを持つことを期待するのは普通ですか?他にどのような問題を検討すべきか?
解決
CD WebServiceには、すべてのコンテンツがCD DBに入る必要があります。これはファイルシステムでは何も意味しません。それでもFSのものがある場合は、CD WebServiceの一部が機能しません。たとえば、FS上にある可能性があるページについて考えてください - CD Webサービスを介してPageContentを取得することはできません。
問題には、CD WebService CD_STORAGE_CONF.XMLがデータベース(JPA)接続を定義していることを確認してください。そしてもちろんそれは機能的です。通常の容疑者、DB接続、ユーザー、パス、URL、JAR ... を確認してください。
編集:スタックトレースを近づけるには、fsをデフォルトの記憶媒体として定義しておく必要があります(getOriginalDAO(...)
の生成されたFSDAOFactory.getDAOForTypeMapping(...)
のため)。だから私はこれが問題の根本だと思います。あなたのライセンスが有効であること、そしてあなたの「バインディング」が不足/期限切れのCDライセンスのためにFSに戻っていないことを確認してください。
他のヒント
他のものの追加入力として、私はまた望ましい結果を取得できないことも経験していました。応答、そして私の場合では、他の構成ファイルを使用して、bin / configディレクトリにありませんでした。