客户端正在尝试将一些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日志文件中没有出现错误以提示其原因。任何人都可以建议可以调查的地方进一步调试,或建议解决方案吗?
答案 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示例中有一条评论表明此更改。
答案 2 :(得分:0)
您是否添加了正确的包含? (Tridion.ContentDelivery.DynamicContent.Query命名空间)
同样如Chris所建议的,查询在tridion 2011中没有setCriteria
属性。
请改用query.Criteria
。
您是否在cd_storage_conf.xml中实现了必要的更改?