如何获取 catalogentryID 的零件描述

How to get part description for catalogentryID

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

我想检索用户输入的 partNumber 的描述。我得到 catentryID = 14726langId 作为 -1。我尝试了以下方法,在创建 CatalogEntryDescriptionAccessBean

实例时得到 javax.ejb.DuplicateKeyException
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();
}

请注意,调用访问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 服务和相应的 access/search 配置文件。

希望能回答您的问题。

谢谢

睡了