문제

Tridion 콘텐츠 배달 웹 서비스를 테스트 할 때 웹 브라우저를 사용하여 "http : ////webservice/odata.svc/"를 호출하여 사용 가능한 컬렉션 목록을 성공적으로 얻을 수 있습니다.컬렉션, 예를 들어;

http://webservice/odata.svc/Publications
.

나는 얻는다.

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

또는 특정 항목

http://webservice/odata.svc/Publications(19)
.

I get :

<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.    
.

이 메시지는 스토리지 구성에서 포인트를 가리 킵니다. 그러나 웹 서비스를 지원하도록 설정 해야하는 방법에 대한 설명서에 대한 명확한 지침을 찾을 수 없었습니다.

스토리지가 어떻게 구성되어야합니까?서비스 및 웹 사이트에 대해 별도의 배포자를 가질 것으로 예상하는 것이 정상입니까?어떤 다른 문제를 고려해야합니까?

도움이 되었습니까?

해결책

CD WebService는 모든 콘텐츠가 CD DB에 있어야합니다.이것은 파일 시스템에 아무 것도 의미하지 않습니다.여전히 FS에 물건이 있으면 CD WebService의 일부가 작동하지 않습니다.예를 들어, FS에있을 수있는 페이지에 대해 생각해보십시오. CD WebService를 통해 PageContent를 검색 할 수 없습니다.

문제에 대한 CD WebService CD_StoRAGE_CONF.XML이 데이터베이스 (JPA) 연결을 정의하는지 확인하십시오.물론 그것은 기능적입니다.일반적인 용의자, DB 연결, 사용자, 패스, URL, 항아리를 확인하십시오 ...

편집 : 스택 추적을 자세히 살펴보면 FS를 기본 저장 매체로 정의해야합니다 (getOriginalDAO(...)로 인해 FSDAOFactory.getDAOForTypeMapping(...)가 생성됨).그래서 이것은 이것이 문제의 근원이라고 생각합니다.귀하의 라이센스가 유효 한 것을 확인하고 '바인딩'이 누락 된 / 만료 된 CD 라이센스로 인해 FS로 되돌아 가지 않아야합니다.

다른 팁

다른 사람들을위한 추가 입력으로 '원하는 결과를 검색 할 수 없음'을 경험하고있었습니다.응답 및 내 경우에는 다른 구성 파일이있는 CD_LICENSES.XML이 BIN / CONFIG 디렉토리에 있지 않기 때문입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top