2

IBM WCS 7 aurorab2b ストアを使用しています。

partNumberユーザーが入力した説明を取得したい。catentryID= 14726-1を取得してlangIdいます。私は次の方法を試しましたが、のインスタンスを作成するときに取得していますjavax.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

アクセス Bean のコンストラクターを呼び出すと、EJB のホーム インターフェースの対応する ejbCreate メソッドにマップされることに注意してください。これは、すでに存在する新しいレコードを作成していることを意味します。

アクセス Bean を使用して説明を取得するには、次の方法を使用します。

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

catEntryAB.refreshCopyHelper();

CatalogEntryDescriptionAccessBean catEntryDescAB = catEntryAB.getDescription(langId);

Bean EJB によってスローされた適切な例外をキャッチし、catEntryDescAB オブジェクトから説明を取得する必要があります。

更新:同じことを達成するための2番目の方法:

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

JSP で注意してください。WCS は Solr を使用して生産情報を取得しています。ProductDisplay.jsp を読んで、使用されている wcf サービスと対応するアクセス/検索プロファイルを確認してください。

それがあなたの質問に答えることを願っています。

ありがとう

ベッド

于 2015-06-06T09:13:35.300 に答える