SDL Tridion 2011 SP1代码挂起创建Broker Query对象

时间:2012-10-11 11:29:09

标签: tridion tridion-content-delivery

客户端正在尝试将一些Broker Query代码集成到现有的Web应用程序中。他们有以下代码:

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();
}

代码可以创建Query对象:

Query query = new Query();

此时它挂了。 cd_core日志文件中没有出现错误以提示其原因。任何人都可以建议可以调查的地方进一步调试,或建议解决方案吗?

3 个答案:

答案 0 :(得分:7)

JRE版本1.6.0.29和MSSQL jdbc驱动程序存在已知问题。您需要降级或升级到其他JRE版本。

https://forums.oracle.com/forums/thread.jspa?threadID=2301826

该问题与驱动程序报告的问题非常相似,您也没有看到任何错误消息。

答案 1 :(得分:0)

尝试更改以下行:

query.setCriteria(andCriteria);

为:

query.Criteria = andCriteria;

SDL LiveContent示例中有一条评论表明此更改。

http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/concept_0AB6D192D7AB4EC18892631F519EF1DD

答案 2 :(得分:0)

您是否添加了正确的包含? (Tridion.ContentDelivery.DynamicContent.Query命名空间) 同样如Chris所建议的,查询在tridion 2011中没有setCriteria属性。 请改用query.Criteria。 您是否在cd_storage_conf.xml中实现了必要的更改?