2

我正在使用 IBM WCS 7 aurorab2b 商店。

我想检索partNumber用户输入的描述。我得到catentryID= 14726-1。我尝试了以下方式,并且在创建实例时得到了langIdjavax.ejb.DuplicateKeyExceptionCatalogEntryDescriptionAccessBean

try{

    String catentID = catlogBean.getCatalogEntryReferenceNumber();
    long catentryID = Long.parseLong(catentID);
    Integer langID = Integer.parseInt(getLanguageId());
    System.out.println("catEntryID:"+catentryID);
    System.out.println("langID:"+langID+"");
    CatalogEntryDescriptionAccessBean catlogDescriptionBean = new CatalogEntryDescriptionAccessBean(catentryID,langID);

    if(catlogDescriptionBean == null)
        System.out.println("catlogDescriptionBean is null");
    else
        System.out.println("catlogDescriptionBean is not null");

    description = catlogDescriptionBean.getShortDescription();
}
catch(Exception e){
    System.out.println("EXCEPTION IN DESCRPTN");
    e.printStackTrace();
}
4

1 回答 1

1

请注意调用access bean的构造函数会映射到EJB的home接口中对应的ejbCreate方法。这意味着您正在创建已经存在的新记录。

使用以下方式获取使用访问 bean 的描述:

CatalogEntryAccessBean catEntryAB = new CatalogEntryAccessBean();
catEntryAB.setInitKey_catalogEntryReferenceNumber(catentry_id);

catEntryAB.refreshCopyHelper();

CatalogEntryDescriptionAccessBean catEntryDescAB = catEntryAB.getDescription(langId);

您需要捕获 bean EJB 抛出的适当异常并从 catEntryDescAB 对象中获取描述。

更新:实现相同的第二种方法:

String longDesc = CatalogEntryCache.getDescription(catEntryAB , 
                        this.commandContext.getLanguageId(), getStoreId()).getLongDescription()

请注意在 JSP 中,WCS 使用 Solr 获取生产信息,请阅读 ProductDisplay.jsp 以查看使用的 wcf 服务和相应的访问/搜索配置文件。

希望这能回答你的问题。

谢谢

于 2015-06-06T09:13:35.300 回答