2012-10-11 45 views
4

客户端正尝试将一些代理查询代码集成到现有的Web应用程序中。它们有以下代码:SDL Tridion 2011 SP1代码挂起创建代理查询对象

public String doItNow(int keyA, 
         String schemaA, 
         String templateIdA) throws Exception { 

    loggerInfo("doItNow.start" + 
       ", key:" + keyA + 
       ", schema:" + schemaA + 
       ", templateId:" + templateIdA); 
    StringBuffer sb = new StringBuffer(); 

    PublicationCriteria pubCriteria = new PublicationCriteria(keyA); 
    loggerInfo("doItNow.PC:" + pubCriteria); 

    SchemaTitleCriteria schemaTitleCriteria = new SchemaTitleCriteria(schemaA); 
    loggerInfo("doItNow.STC:" + schemaTitleCriteria); 

    AndCriteria andCriteria = new AndCriteria(pubCriteria, schemaTitleCriteria); 
    loggerInfo("doItNow.AC:" + andCriteria); 

    Query query = new Query(); 
    loggerInfo("doItNow.Query.0:" + query); 
    query.setCriteria(andCriteria); 
    loggerInfo("doItNow.Query.1:" + query); 

    String[] results = query.executeQuery(); 
    for (String r : results) { 
     loggerInfo("doItNow.\tres:" + r); 
    } 

    ComponentPresentationAssembler cpa = new ComponentPresentationAssembler(keyA); 
    loggerInfo("doItNow.CPA:" + cpa); 

    for (String item : results) { 
     loggerInfo(":>" + item); 
     sb.append(cpa.getContent(item, templateIdA)); 
    } 

    return sb.toString(); 
} 

代码exectues尽可能创建查询对象:

Query query = new Query(); 

在这一点上挂起。在cd_core日志文件中没有错误显示为此的一个原因。任何人都可以建议可以进行调查的领域进一步调试,或者提出解决方案?

+1

可能值得检查。正在使用什么版本的JRE? jdbc驱动程序连接到数据库时,版本1.6.0.29存在一些问题。我希望情况并非如此。 –

+0

Ram,就是这样 - 日志说“java.runtime.version = 1.6.0_29-b11”。发布答案,我会接受它:) –

回答

0

有你加入了正确包括? (Tridion.ContentDelivery.DynamicContent.Query命名空间) 也如Chris所建议的,2011年tridion中的查询没有属性setCriteria。 改为使用query.Criteria。 您是否还在cd_storage_conf.xml中实施了必要的更改?

相关问题